// Condizioni per entrare su posizioni long
c1 = (close > open [120])
c3 = (close[121] > open[240])
c11 = (close > open)
IF c1 AND c3 and c11 and timeEnterAfter THEN
BUY 1.6 CONTRACT AT MARKET
p = 16
ENDIF
// Condizioni per entrare su posizioni short
c2 = (close < open [120])
c4 = (close[121] < open[240])
c22 = (close < open)
IF c2 AND c4 and c22 and timeEnterAfter THEN
SELLSHORT 1.6 CONTRACT AT MARKET
p = 16
ENDIF
c111 = (close > open)
IF not ONMARKET and c111 AND timeEnterAfter THEN
BUY 1.6 CONTRACT AT MARKET
p = 8.2
ENDIF
// Condizioni per entrare su posizioni short
c222 = (close < open)
IF not ONMARKET and c222 AND timeEnterAfter THEN
SELLSHORT 1.6 CONTRACT AT MARKET
p = 8.2
ENDIF
// Stop e target
SET TARGET pPROFIT p
Il programma usa SEMPRE come take profit 8.2 invece che 16 anche quando entra il contratto con take 16
Perché le righe 20 e 27 sono, una o l’altra, sempre vere quindi p=8.2, anche se prima gli era stato assegnato un valore diverso.
ma la condizione “not onmarket” non è sempre vera.
Comunque, come posso scriverlo correttamente?
grazie
Comunque aggiungendo queste righe alla fine:
graph c11
graph c22
graph c111
graph c222
graph p
graph OnMarket
puoi verificare i valori delle variabili che t’interessano, candela per candela, nella finestra delle variabili di ProBackTest (è una finestra presente quando si usa GRAPH, se non lo usi la finestra non appare).
GRAPH e GRAPHONPRICE aiutano molto a trovare errori.
Usa sempre la condizione Not OnMarket per entrare in posizione, così sei certo che lo SL non ti cambia, altrimenti te lo può cambiare anche quando sei a mercato:
// Condizioni per entrare su posizioni long
c1 = (close > open [120])
c3 = (close[121] > open[240])
c11 = (close > open)
IF c1 AND c3 and c11 AND Not OnMarket then//and timeEnterAfter THEN
BUY 1.6 CONTRACT AT MARKET
p = 16
ENDIF
// Condizioni per entrare su posizioni short
c2 = (close < open [120])
c4 = (close[121] < open[240])
c22 = (close < open)
IF c2 AND c4 and c22 AND Not OnMarket then //and timeEnterAfter THEN
SELLSHORT 1.6 CONTRACT AT MARKET
p = 16
ENDIF
c111 = (close > open)
IF not ONMARKET and c111 then//AND timeEnterAfter THEN
BUY 1.6 CONTRACT AT MARKET
p = 8.2
ENDIF
// Condizioni per entrare su posizioni short
c222 = (close < open)
IF not ONMARKET and c222 then//AND timeEnterAfter THEN
SELLSHORT 1.6 CONTRACT AT MARKET
p = 8.2
ENDIF
// Stop e target
SET TARGET pPROFIT p
graph c11
graph c22
graph c111
graph c222
graph p
graph OnMarket
ho commentato una variabile inesistente.
Ti conviene mettere, come riga iniziale:
DEFPARAM CumulateOrders = false