Buongiorno a tutti, non riesco a trovare il comando per far sì che il trading system non continui a entrare a mercato. Cerco di spiegarmi meglio:
Ipotizziamo di entrare long al verificarsi di una condizione, come fosse un semaforo, che può essere zero oppure uno. Si verifica la condizione 1, il ts entra long, viene raggiunto il profit e l’operazione chiusa. Fin qui tutto ok, ma alla barra successiva il ts rientra long perchè la condizione 1 continua a essere attiva. Io vorrei evitare questa ripetizione, un colpo solo per ogni semaforo in sostanza, quale soluzione posso utilizzare?
Grazie
Questo è il codice, dovrai stabilire tu quando rimettere la variabile TradeON ad 1 per ricominciare, magari dopo un certo numero di barre, oppure il giorno successivo.
Puoi anche usare due variabili, una per i LONG ed una per gli SHORT, se vuoi.
ONCE TradeON = 1 //Attivare il trading per default
IF MieCondizioni AND Not OnMarket AND TradeON THEN
BUY 1 CONTRACT AT MARKET
TradeON = 0 //Disattivare il trading ppena entrato a mercato
ENDIF
Ok grazie molto gentile, provo e farò sapere!
Gentile Roberto ho provato ma non genera nulla, non entra a mercato.
ONCE TradeON = 1 //Attivare il trading per default
IF C1 AND Not OnMarket AND TradeON THEN
BUY 1 CONTRACT AT MARKET
TradeON = 0 //Disattivare il trading appena entrato a mercato
ENDIF
Hai messo delle condizioni possibili in C1?
Perché se sono condizioni estramente rare da verificarsi può capitare.
Prova con
C1 = close CROSSES OVER average[20]
Si si la condizione si è verificata 4 volte nelle ultime 5 ore, ma anche mettendo così non entra in posizione:
C3 = close CROSSES OVER average[20]
ONCE TradeON = 1 //Attivare il trading per default
IF C3 AND Not OnMarket AND TradeON THEN
BUY 1 CONTRACT AT MARKET
TradeON = 0 //Disattivare il trading appena entrato a mercato
ENDIF
E’ vero, mettendo DEFPARAM PreLoadBars=0 all’inizio funziona, però non ha le barre per potere calcolare la media.
Ad ogni modo ho modificato il codice in modo che funzioni, fa solo un’operazione e, se hai indicato un capitale elevato, non termina in quanto non c’è una codizione per farlo.
C3 = close CROSSES OVER average[20]
if Not OnMarket AND StrategyProfit = 0 then
TradeON = 1 //Attivare il trading per default
ENDIF
IF C3 AND Not OnMarket AND TradeON THEN
BUY 1 CONTRACT AT MARKET
TradeON = 0 //Disattivare il trading appena entrato a mercato
ENDIF
Ok grazie, provo e farò sapere!