//https://www.prorealcode.com/prorealtime-trading-strategies/popular-rule-based-model-200-38-long-term-wealth-avoiding-bear-markets/
// Festlegen der Code-Parameter
DEFPARAM CumulateOrders = False // Kumulieren von Positionen deaktiviert
capital = 100000 + strategyprofit
n = capital / close
// orginial 200 day sma
c1 = average[200](close)
// the 3 % up band
c2 = c1*1.03
// the 3 % low band
c3 = c1*0.97
// the original 38 day sma
c4 = Average[38](close)
// Bedingungen zum Einstieg in Long-Positionen
IF ( BarIndex > 200) then
IF c4 > c2 THEN
BUY n shares AT MARKET
ENDIF
// Bedingungen zum Ausstieg von Long-Positionen
IF c4 < c3 THEN
SELL AT MARKET
ENDIF
ENDIF
Buongiorno, vorrei che ProBacktest effettuasse operazioni solo quando barindex
supera il valore di 200. ProBacktest invece effettua il primo acquisto prima
che barindex raggiunga il suddetto valore. Non riesco a capirne il motivo.
Ho postato il codice e uno screen nel messaggio precedente.
Cosa ne pensate?
Grazie
P.S. scusate ma non riuscivo a postare messaggio, codice e screen nello stesso post.
L’ho testato sul DAX, h1, ed ha funzionato correttamente.
Dalla foto 1 puoi notare:
- ho aggiunto le ultime due righe 29 e 30 con GRAPH per vedere, nella finestra delle variabili, il loro valore candela per candela
- ho tolto le righe 20 e 22 (le ho commentate) per evitare che la condizione d’entrata non ci fosse in modo che entrasse subito, senza condizioni
- alla riga 4 ho aggiunto DEFPARAM PRELOADBARS=0 perché ProOrder ne carica 2000 in automatico ed è da li che inizia a contare
- nella finestra delle variabili noterai, in corrispondenza alla barra precedente a quella di setup, che BARINDEX=200 e, quindi, X=0 in quanto BarIndex NON è maggiore di 200
Dalla foto 2 puoi notare:
- in corrispondenza della barra di setup (evidenziata in verde) GRAPH mostra come BARINDEX=201 e stavolta X=1
- all’inizio della barra successiva (dove c’è la freccia azzurra) il trade viene aperto
Per cui devi usare 0 nel PRELOAD, ovviamente questo impedisce a che gli indicatori siano correttamente calcolati, non in questo caso, perché la media a 200, iniziando dalla barra 200 a calcolarla, non da problemi. Altrimenti ProOrder, quando esegui la strategia, la fa uscire con l’errore che non ha sufficienti barre per calcolare un indicatore.
Ciao Roberto, ha funzionato correttamente nella versione originale o dopo le tue modifiche?
Ha funzionato dopo le modifiche.
Bene, anche oggi qualcosa ho imparato. Grazie Roberto.