salve, vorrei sapere se il prt ha la funzione di sospendere dei programmi e magari attivarne altri in base a parametri da me indicati… per esempio dopo 5 trade positivi sospendere il programma in questione per poi riattivarlo dopo 3 negativi, questa funzione che se non sbaglio è presente su multicharts sarebbe veramente molto utile soprattutto quando si hanno decine di programmi in esecuzione
Non c’è una specifica istruzione codificata, ma il codice ti permette di sospendere quando vuoi e riprendere quando vuoi.
Una curiosità, se sospendi la strategia dopo 5 operazioni negative, come possono poi verificarsene 3 positive?
il sistema dovrebbe controllare ciclicamente i probacktest e riattivarsi dopo un numero x di risultati negativi, sul multicharts è possibile e lo trovo uno strumento molto utile, dopo 4/5 trade positivi la probabilità che continui è molto bassa… e quindi sistema a riposo
Si, può prenderne essere fatto, ma io non posso fino a dopo il 20. Sono in vacanza e non ho il PC.
Se nessun altro può fartelo te lo farò io in seguito.
ciao roberto, se puoi mi spieghi come fare per far calcolare alla strategia se il trade è stato negativo o positivo? in tal caso potrei utilizzare il risultato come condizione di eventuale entrata, il problem è come far capire alla macchina i trade negativi se la strategia non è entrata…. in pratica vorrei che si analizzassero ciclicamente i probacktest, è possibile? grazie
Per verificare se un’operazione è stata positiva o negativa, basta scrivere:
IF StrategyProfit > StrategyProfit[1] THEN //risultato positivo
.
.
ELSIF StrategyProfit < StrategyProfit[1] THEN //risultato negativo
.
.
ENDIF
il problema è, una volta sospeso, simulare le operazioni per vedere quando ripartire. E’ un pò lungo da fare, mi occorre del tempo.
grazie mille per ora, appena puoi dimmi anche come scrivere il resto, la stringa la metto dentro i vari algiritmi giusto?
Questo codice dopo 5 guadagni sospende il trading per quella giornata. Il conteggio riparte il giorno dopo.
once nGains = 0
nGainsMax = 5 //maxNumberDailyGains
if intradayBarIndex = 0 then
nGains = 0
endif
if strategyProfit > strategyProfit[1] then
nGains = nGains +1
elsif strategyProfit < strategyProfit[1] and nGains > nGainsMax then
nGains = 0
endif
// ESEMPIO CODICE
if not onMarket and close crosses over average[10,0] and nGains < nGainsMax then
buy 1 contract at market
endif
set target pProfit 10
set stop pLoss 10
graph nGains
grazie, per la sospensione ok ma come potrei fare poi per riattivare un sistema dopo x trade negativi cge chiaramente dovrebbero essere visionati o i demo o con probacktest?
Prova questo, mi sembra funzioni:
once nGains = 0
ONCE nGainsMax = 3 //interrompere dopo 3 trade positivi
ONCE nLossesMax = 3 //riprendere dopo 3 trade negativi
ONCE StopTrades = 0
ONCE SL = 20
ONCE TP = 40
ONCE OnTheMarket = 0
//
// Simulazuione Profitto o Perdita
IF StopTrades AND OnTheMarket THEN
IF low <= StopPrice THEN
nGains = nGains - 1
OnTheMarket = 0
ELSIF high >= StopPrice THEN
nGains = 0
OnTheMarket = 0
ENDIF
IF nGains <= -(nLossesMax) THEN
StopTrades = 0
OnTheMarket = 0
nGains = 0
ENDIF
ENDIF
//
if strategyProfit > strategyProfit[1] AND StopTrades = 0 then
nGains = nGains + 1
if nGains >= nGainsMax THEN
StopTrades = 1
nGains = 0
endif
endif
//
// ESEMPIO CODICE
if not onMarket and close crosses over average[10,0] and StopTrades = 0 then
buy 1 contract at market
OnTheMarket = 0
endif
//
//Simulazione dell'Entrata
if Not OnMarket AND not OnTheMarket and close crosses over average[10,0] and StopTrades = 1 then
OnTheMarket = 1
EntryPrice = close
StopPrice = EntryPrice - SL*PipSize
ProfitPrice = EntryPrice + TP*PipSize
endif
//
set target pProfit TP
set stop pLoss SL
//graph nGains
//graph nGains = nGainsMax coloured("Green")
//graph nGains = nLossesMax coloured("Red")