Codice da libreria “Nessuna strategia di tendenza”
Forums › ProRealTime forum Italiano › Supporto ProOrder › Codice da libreria “Nessuna strategia di tendenza”
- This topic has 6 replies, 3 voices, and was last updated 2 years ago by robertogozzi.
-
-
06/21/2022 at 4:45 PM #195771
Provo un codice trovato in libreria (di seguito) , nel provarlo mi da errore alla riga 9 e non capisco il perchè.
// Stop e target: Inserisci qui i tuoi stop di protezione e profit target
//optimization period:
period = p// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False
TimeStart = time >= 000000
TimeStop = time <= 240000// Le giornate come 1 maggio, 24, 25, 26, 30 e 31 dicembre, i sabati e le domeniche sono esclusi
GiornoTrading= NOT((Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31) OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0))ONCE SIZE = 2 // nr. contratti
ONCE NDBARLIMIT = 3 // NR. OF BARS ON WHICH THE ORDER STOP REMAINS VALID
ONCE PXT = Pointsize // es. per EURUSD = 0.00001; per EURJPY = 0.001 per DAX = 1
AA = period // PERIOD OF LINEAR REGRESSION AND 1° PERIOD OF STOCHASTIC –> OTTIMIZZARE FROM 20 TO 300 STEP 10
SSTOC = SmoothedStochastic[AA,AA/4](Close)
SUT = SuperTrend[3,10]// TREND – NO TREND
t=(LinearRegressionSlope[AA](close)-0)*SQRT(AA-2)/(STE[AA](close)/STD[AA](Barindex))
if t<1.96 then
beta=0
else
beta=1
endif// Condizioni per entrare long
C1 = SSTOC[1] <= 30 AND SSTOC[0] > SSTOC[1] AND beta = 0 // No Trend = SWING
IF C1 then
OPENBUY = HIGH[0]+ 2*PXT
MYINDEX = Barindex
ENDIF
IF Barindex >= MYINDEX + NDBARLIMIT THEN
OPENBUY = 0
ENDIF
IF OPENBUY > 0 AND NOT LONGONMARKET AND GiornoTrading and TimeStart and TimeStop THEN
BUY SIZE CONTRACTS AT OPENBUY STOP
// si fissano stoploss e targetprofit
ST=((LOWEST[10](LOW))-OPENBUY)/PXT
IF ST > 150 OR ST <=0 THEN // Max stoploss in point
ST = 150
ENDIF
SET STOP pLOSS ST
ENDIF
// Condizioni per uscire da posizioni Long
IF LongOnMarket AND (Close[1]>SUT[1] AND Close<SUT) then // change color of supertrend = close position
SELL at Market
ENDIF// Condizioni per entrare short
C21 = SSTOC[1] >= 70 AND SSTOC[0] < SSTOC[1] AND beta = 0 // No Trend = SWING
IF C21 then
OPENSELL = LOW[0]- 2*PXT
MYINDEX = Barindex
ENDIF
IF Barindex >= MYINDEX + NDBARLIMIT THEN
OPENSELL = 0
ENDIF
IF OPENSELL > 0 AND NOT SHORTONMARKET AND GiornoTrading and TimeStart and TimeStop THEN
SELLSHORT SIZE CONTRACTS AT OPENSELL STOP
// si fissano stoploss e targetprofit
ST=(OPENSELL-(HIGHEST[10](HIGH)))/PXT
IF ST > 150 OR ST <= 0 THEN
ST = 150
ENDIF
SET STOP pLOSS ST
ENDIF//Condizioni per uscire da posizioni Short
IF ShortOnMarket AND (Close[1]<SUT[1] AND Close>SUT) then // change color of supertrend = close position
EXITSHORT at Market
ENDIF06/22/2022 at 7:20 AM #195795Prova a copiarla in un editor di testo, tipo Blocco Note, e da li copiarla di nuovo nella strategia. In questo modo si eliminano possibili caratteri estranei presenti.
A volte capita che l’errore sia in un’altra riga contigua.
Adesso non sono al PC e non posso fare una verifica immediata.
La farò appena possibile.
06/22/2022 at 9:49 AM #195818Devi spostare la riga 3 “period = p” sotto DEFPARAM e poi dare un valore a p (oppure ottimizzi P)
1 user thanked author for this post.
06/22/2022 at 11:43 AM #195842Adesso va benissimo, grazie. Come posso abbassare il Drawdown che è molto alto?
06/22/2022 at 5:13 PM #195875Prima bisognerebbe capire su che strumento usi questo TS e con quale timeframe.
Poi puoi fare due cose: 1) lasci così il codice e provi ad ottimizzare le diverse variabili di indicatori e money management, stop, profit …. oppure, ma è più complesso, 2) cerchi di capire la logica di questo TS e provi a vedere (smontandolo pezzo per pezzo con il debugging) come il TS prova ad ottenere ciò che si prefigge.
06/23/2022 at 10:13 AM #195930Ottimizzando le variabili, non ottengo risultati, comunque sottostante Dax tf 1 ora.
06/24/2022 at 5:04 PM #196036A me sul DAX ad 1 ora funziona correttamente.
Il rapporto l’ho fatto calcolare sul DrawDown più basso. -
AuthorPosts