Tempo fa avevo utilizzato qualcosa del genere, una variabile max e una min dove memorizzavo il massimo e il minimo delle ultime n barre:
Codice: Seleziona tutto
if(max!=iHigh(Symbol(),Timeframe,iHighest(Symbol(),Timeframe,MODE_HIGH,periodo,1)))
max=iHigh(Symbol(),Timeframe,iHighest(Symbol(),Timeframe,MODE_HIGH,periodo,1));
if(min!=iLow(Symbol(),Timeframe,iLowest(Symbol(),Timeframe,MODE_LOW,periodo,1)))
min=iLow(Symbol(),Timeframe,iLowest(Symbol(),Timeframe,MODE_LOW,periodo,1));
Definito il Timeframe, la variabile periodo è il numero di barre da considerare partendo dalla 1 cioè l'ultima completa, quindi iHighest e iLowest sono int che restituiscono il numero della barra che contiene il massimo e il minimo, ossia il valore shift da utilizzare con iHigh e iLow per ottenere il prezzo più alto e quello più basso tra le barre considerate.