Se devo trovare il massimo di 2+n valori di chiusura? la funzione non aiuta. In MC MaxList.
Soluzione adottata per trovare il minimo e il massimo delle ultime 5 giornate:
IF DHigh(1)>DHigh(2) AND DHigh(1)>DHigh(3) AND DHigh(1)>DHigh(4) AND DHigh(1)>DHigh(5) THEN
Massimo=DHigh(1)
ENDIF
IF DHigh(2)>DHigh(1) AND DHigh(2)>DHigh(3) AND DHigh(2)>DHigh(4) AND DHigh(2)>DHigh(5) THEN
Massimo=DHigh(2)
ENDIF
IF DHigh(3)>DHigh(1) AND DHigh(3)>DHigh(2) AND DHigh(3)>DHigh(4) AND DHigh(3)>DHigh(5) THEN
Massimo=DHigh(3)
ENDIF
IF DHigh(4)>DHigh(1) AND DHigh(4)>DHigh(2) AND DHigh(4)>DHigh(3) AND DHigh(4)>DHigh(5) THEN
Massimo=DHigh(4)
ENDIF
IF DHigh(5)>DHigh(1) AND DHigh(5)>DHigh(2) AND DHigh(5)>DHigh(3) AND DHigh(4)>DHigh(4) THEN
Massimo=DHigh(5)
ENDIF
IF DLow(1)>DLow(2) AND DLow(1)>DLow(3) AND DLow(1)>DLow(4) AND DLow(1)>DLow(5) THEN
Minimo=DLow(1)
ENDIF
IF DLow(2)>DLow(1) AND DLow(2)>DLow(3) AND DLow(2)>DLow(4) AND DLow(2)>DLow(5) THEN
Minimo=DLow(2)
ENDIF
IF DLow(3)>DLow(1) AND DLow(3)>DLow(2) AND DLow(3)>DLow(4) AND DLow(3)>DLow(5) THEN
Minimo=DLow(3)
ENDIF
IF DLow(4)>DLow(1) AND DLow(4)>DLow(2) AND DLow(4)>DLow(3) AND DLow(4)>DLow(5) THEN
Minimo=DLow(4)
ENDIF
IF DLow(5)>DLow(1) AND DLow(5)>DLow(2) AND DLow(5)>DLow(3) AND DLow(5)>DLow(4) THEN
Minimo=DLow(5)
ENDIF
Non è la soluzione più efficiente, se avete qualche suggerimento grazie.
AVTParticipant
Senior
Mathematical Max(val1,val2) could help
I have 5 values to test: d1,d2,d3,d4,and d5. Max function could accept array of values. Thx
Nel forum ITALIANO si prega di scrivere in Italiano. Grazie.
Per il tuo problema AndyRm, se devi fare un test su 5 variabili, come hai scritto, puoi fare:
Massimo = max(d1,max(d2,max(d3, max(d4, d5))))
Se, invece devi trovare il massimo di 5 diversi giorni consecutivi:
Massimo = Dhigh[0] //Massimo odierno
FOR i = 1 TO 5 //Verificare le 5 barre precedenti
IF Dhigh[i] > Massimo THEN
Massimo = Dhigh[i] //Salvare l'eventuale massimo più alto
ENDIF
NEXT
Roberto
Grazie per la risposta, ho scritto in inglese per rispondere ad AVT, che mi scriveva in inglese…Visto che ci siamo posso nel codice inserire funzioni parametriche che richiamo?
Non è una vera e propria funzione come ne esistono nei linguaggi di programmazione, ma si può creandosi un proprio indicatore.
Supponiamo di volere una funzione che mi restituisca i prezzi Massimo, Minimo e Medio di un certo periodo.
Si crea questo indicatore:
DEFPARAM CalculateOnLastBars = 1000
Massimo = highest[Periodi](high)
Minimo = lowest[Periodi](low)
Medio = (Massimo + Minimo) / 2
return Massimo, Minimo, Medio
e poi lo si richiama così:
Massimo, Minimo, Medio = CALL "Il Mio Indicatore"[10] //indicare i periodi desiderati
Ne puoi creare quanti ne vuoi, però occorre tenere presente che gli indicatori richiamati con CALL rallentano molto il codice. Anche solo uno può rallentare in modo evidente, specialmente se lo richiami da una strategia per il backtest.
Roberto
Grazie suggerimento prezioso.