Buonasera, sto scrivendo un codice il quale va a cercare derminati max e minimi daily nel passato, ad esempio compra se rompe il massimo del dhigh(32) ma vorrei escludere le domeniche dal conteggio, come posso fare?
Grazie.
Devi utilizzare un ciclo:
Minimo = 999999
Massimo = 0
FOR i = 0 TO 31
IF OpenDayOfWeek < 6 THEN //solo i giorni da 0 a 5 (Lun-Ven)
Minimo = min(Minimo,Dlow[i])
Massimo = max(Massimo,Dhigh[i])
ENDIF
NEXT
OK Roberto, PROVO AD INCOLLARE IL CODICE CHE MI HAI PASSATO E TI FACCIO SAPERE!!!
GRAZIE…
allora inserendo il codice da te scritto e considerando che la mia ricerca e’ la seguente
if adx[14]>30 then
valorel1=3
else
valorel2=12
endif
C1= CLOSE CROSSES OVER DHIGH(valorel1)
come utilizzo “i”?
grazie
La riga 3, invece che andare da 0 a 31 andrà da 0 a (valorel1 – 1).
buongiorno, mi serve un aiuto, potresti correggermi il codice perchè mi faccia un solo trade in base alle condizioni es. il supertrend , indipendentemente che abbia preso lo stop o il profit
grazie mille
/ Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 090000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 211500
// Condizioni per entrare su posizioni long
indicator1 = SuperTrend[s,t]
c1 = (close[1] > indicator1)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Condizioni per uscire da posizioni long
indicator2 = SuperTrend[s,t]
c2 = (close[1] < indicator2)
IF c2 THEN
SELL AT MARKET
ENDIF
// Condizioni per entrare su posizioni short
indicator3 = SuperTrend[s,t]
c3 = (close[1] < indicator3)
IF c3 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// Condizioni per uscire da posizioni short
indicator4 = SuperTrend[s,t]
c4 = (close[1] > indicator4)
IF c4 THEN
EXITSHORT AT MARKET
ENDIF
NON RIESCO MI SPIEGO MEGLIO,
VORREI CHE UN CLOSE IN H1 CROSSI A RIALZO UN MASSIMO IN DAILY ESCLUDENDO DAL CONTEGGIO(IL NUMERO CHE PER VIA DELL’OTTIMIZAZZIONE USCIRA FUORI) LE DOMENICHE, PERCHE’ MI CHIEDERETE?
PERCHE MI SERVE DA RIPORTARE TALE NUMERO SU LA MT4 PERCHE’ SE DOVESSI FARLO GIRARE SU PRT NON CI SAREBBE PROBLEMA QUELLO CHE CONTA CONTA, MA LA MT4 NON CONSIDERA DATI DI FINE SETTIMANA, ED AGGIUNGO CHE I VALORI DEVONO ESSERE 2, UN BRECK SE ADX E’ MAGGIORE DI 30 ED UNO SE UN BRECK AVVIENE CON ADX SOTTO 30.
GRAZIE A CHI MI AIUTERA’.
Per favore NON scrivere in maiuscolo. URLARE non aiuterà.
cavolo scusate, non mi ero accorto del maiuscolo
@okeus
per favore apri un topic separato, non aggiungendolo ad un altro casualmente!
Grazie 🙂
Purtroppo fino a lunedì non ho tempo di darci un’occhiata.
Per l’incrocio del massimo puoi scrivere (il primo codice che ti avevo scritto era errato, perché < 6 non va bene):
Minimo = 999999
Massimo = 0
Periodi = 50
FOR i = 0 TO (Periodi - 1)
IF OpenDayOfWeek => 1 AND OpenDayOfWeek <= 5 THEN //solo i giorni da 1 a 5 (Lun-Ven)
Minimo = min(Minimo,Dlow[i])
Massimo = max(Massimo,Dhigh[i])
ENDIF
NEXT
x = close CROSSES OVER Massimo
y = close CROSSES UNDER Minimo
X ed Y saranno veri quando i relativi incroci si sono verificati.
Non devi usare la variabile “i”, è così e basta. Devi solo variare il Periodo sostituendo a 50 il valore che preferisci.
grazie Roberto, lo testo e ti aggiorno!!!
Buonasera, niente non sono riuscito a far escludere la domenica dal conteggio…
Il codice va bene, dipende dove l’hai inserito ed utilizzato. Posta il codice completo.
Tieni presente che va bene per un calcolo tipo minimi/massimi di cui sopra, ma se fai una media degli ultimi 50 periodi PRT incklderà SEMPRE tutte le 50 candele precedenti, che siano domenica o altro.