Qualcuno mi può dire dove sto sbagliando nel codice ?
Forums › ProRealTime forum Italiano › Supporto ProOrder › Qualcuno mi può dire dove sto sbagliando nel codice ?
- This topic has 4 replies, 2 voices, and was last updated 7 years ago by iceman89.
-
-
09/25/2017 at 2:58 PM #47276
Vorrei sapere se qualcuno mi può dire dove sto sbagliando nel mio trading system allego i codici sia candele heiken ashi sia candele giapponesi.
- ts candele heiken ashi
codice ts candele heiken ashi1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni; in base all'orario di negoziazione dello Strumento Finanziario usato.DEFPARAM FLATBEFORE = 100000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"; in base all'orario di negoziazione dello Strumento Finanziario usato.DEFPARAM FLATAFTER = 020000// Impedisce al sistema di creare nuovi ordini per entrare a mercato o aumentare la taglia della posizione prima dell'orario specificatonoEntryBeforeTime = 095900IF noEntryBeforeTime > 020000 THENtimeEnterBefore = time >= noEntryBeforeTime OR time < 020000ELSEtimeEnterBefore = time >= noEntryBeforeTime AND time < 020000ENDIF// Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicatonoEntryAfterTime = 020100IF noEntryAfterTime > 020000 THENtimeEnterAfter = time > 100000 AND time < noEntryAfterTimeELSEtimeEnterAfter = time > 100000 OR time < noEntryAfterTimeENDIF// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0ONCE InizioLong = 100000// Inizio orario di negoziazione LONG dalle 10:00:00 in poiONCE FineLong = 230000// Fine orario di negoziazione LONG dopo le 23:00:00ONCE InizioShort = 100000// Inizio orario di negoziazione SHORT dalle 10:00:00 in poiONCE FineShort = 020000// Fine orario di negoziazione SHORT dopo le 02:00:00//Condizioni LONG e SHORT//Parametri candele Heikin AshiDojiSize = 5 //x% percent of body size compared to the complete range of the candlestick// ---IF BARINDEX = 0 THENxClose = TotalPricexOpen = (xOpen[1] + xClose[1]) / 2xHigh = Max(xOpen, xClose)xLow = Min(xOpen, xClose)xHigh = Max(High,xHigh)xLow = Min(Low,xLow)ENDIFdoji=(abs(xopen - xclose) <= (xhigh - xlow) * DojiSize/100)//Entrare LONG e SHORT HEIKIN ASHIONCE PreviousStatus = 0IF BarIndex = 0 THENXClose = TotalPriceXOpen = (Open + Close) / 2ELSEXClose = TotalPriceXOpen = (XOpen[1] + Xclose[1]) / 2ENDIFIF XClose >= XOpen THENIF NOT LONGONMARKET and NOT doji and NOT daysforbiddenentry and timeenterbefore and timeenterafter and PreviousStatus <> 1 and time >= InizioLong AND time <= FineLong THEN//LONG solo nell'orario stabilito.BUY 1 SHARES AT MARKET NEXTBAROPENPreviousStatus = 1ENDIFELSEIF NOT SHORTONMARKET and NOT doji and NOT daysforbiddenentry and timeenterbefore and timeenterafter and PreviousStatus <> -1 and time >= InizioShort AND time<= FineShort THEN//SHORT solo nell'orario stabilito.SELLSHORT 1 SHARES AT MARKET NEXTBAROPENPreviousStatus = -1ENDIFENDIF//Uscire LONG e SHORT HEIKIN ASHIIF time = FineLong THEN //Chiudere le posizioni LONG all'ora stabilita.IF LONGONMARKET THENSELL AT MARKETENDIFELSEIF time = FineShort THEN //Chiudere le posizioni SHORT all'ora stabilitaIF SHORTONMARKET THENEXITSHORT AT MARKETENDIFENDIFENDIF
2. ts candele giapponesi
-
codice candele giapponesi12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970//Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni; in base all'orario di negoziazione dello Strumento Finanziario usato.DEFPARAM FLATBEFORE = 100000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"; in base all'orario di negoziazione dello Strumento Finanziario usato.DEFPARAM FLATAFTER = 020000// Impedisce al sistema di creare nuovi ordini per entrare a mercato o aumentare la taglia della posizione prima dell'orario specificatonoEntryBeforeTime = 095900IF noEntryBeforeTime > 020000 THENtimeEnterBefore = time >= noEntryBeforeTime OR time < 020000ELSEtimeEnterBefore = time >= noEntryBeforeTime AND time < 020000ENDIF// Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicatonoEntryAfterTime = 020100IF noEntryAfterTime > 020000 THENtimeEnterAfter = time > 100000 AND time < noEntryAfterTimeELSEtimeEnterAfter = time > 100000 OR time < noEntryAfterTimeENDIF// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0ONCE InizioLong = 100000// Inizio orario di negoziazione LONG dalle 10:00:00 in poiONCE FineLong = 230000// Fine orario di negoziazione LONG dopo le 23:00:00ONCE InizioShort = 100000// Inizio orario di negoziazione SHORT dalle 10:00:00 in poiONCE FineShort = 020000// Fine orario di negoziazione SHORT dopo le 02:00:00//Condizioni LONG e SHORT//Parametri candele GIAPPONESI STANDARDDojiSize = 0.05// ---doji=(abs(open - close) <= (high - low) * DojiSize)//Entrare LONG e SHORT CANDELE GIAPPONESI STANDARDONCE PreviousStatus = 0IF NOT LONGONMARKET and NOT doji and NOT daysforbiddenentry and timeenterbefore and timeenterafter and PreviousStatus <> 1 and time >= InizioLong AND time <= FineLong THEN//LONG solo nell'orario stabilito.BUY 1 SHARES AT MARKET NEXTBAROPENPreviousStatus = 1ENDIFIF NOT SHORTONMARKET and NOT doji and NOT daysforbiddenentry and timeenterbefore and timeenterafter and PreviousStatus <> -1 and time >= InizioShort AND time<= FineShort THEN//SHORT solo nell'orario stabilito.SELLSHORT 1 SHARES AT MARKET NEXTBAROPENPreviousStatus = -1ENDIF//Uscire LONG e SHORT CANDELE GIAPPONESI STANDARDIF time = FineLong THEN //Chiudere le posizioni LONG all'ora stabilita.IF LONGONMARKET THENSELL AT MARKETENDIFELSEIF time = FineShort THEN //Chiudere le posizioni SHORT all'ora stabilitaIF SHORTONMARKET THENEXITSHORT AT MARKETENDIFENDIFENDIF
la domanda è dove sto sbagliando? sia se lo voglio lanciare in probacktest o proorder cioè in REALE?
Grazie mille in Anticipo a chi mi da una risposta.
09/25/2017 at 3:12 PM #47278Non sono entrato nel merito della strategia, ma già ad un primo sguardo vedo che FLATAFTER e FLATBEFORE contengono orari incompatibili, FLATAFTER non può avere valori inferiori a FLATBEFORE altrimenti nessun trade verrà mai eseguito.
Anche nel codice mi sembra ci sia questo errore logico, non si può chiedere che qualcosa venga fatto prima delle 10 ed allo stesso tempo che niente debba essere fatto dopo le 2!
Inoltre è bene sempre specificare il Timeframe e lo strumento su cui la strategia deve operare, altrimenti chi legge non può fare test ed eventualmente aiutarti.
09/25/2017 at 4:18 PM #47289cosi invece potrebbe andare per esempio mercato azionario americano titolo apple all sessions (10:00:00-02:00:00) orario di negoziazione.
timeframe 1minuto
il codice così potrebbe funzionare in probacktest o reale?
codice candele heiken ashi123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni; in base all'orario di negoziazione dello Strumento Finanziario usato.// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0ONCE InizioLong = 100000// Inizio orario di negoziazione LONG dalle 10:00:00 in poiONCE FineLong = 230000// Fine orario di negoziazione LONG dopo le 23:00:00ONCE InizioShort = 100000// Inizio orario di negoziazione SHORT dalle 10:00:00 in poiONCE FineShort = 020000// Fine orario di negoziazione SHORT dopo le 02:00:00//Condizioni LONG e SHORT//Parametri candele Heikin AshiDojiSize = 5 //x% percent of body size compared to the complete range of the candlestick// ---IF BARINDEX = 0 THENxClose = TotalPricexOpen = (xOpen[1] + xClose[1]) / 2xHigh = Max(xOpen, xClose)xLow = Min(xOpen, xClose)xHigh = Max(High,xHigh)xLow = Min(Low,xLow)ENDIFdoji=(abs(xopen - xclose) <= (xhigh - xlow) * DojiSize/100)//Entrare LONG e SHORT HEIKIN ASHIONCE PreviousStatus = 0IF BarIndex = 0 THENXClose = TotalPriceXOpen = (Open + Close) / 2ELSEXClose = TotalPriceXOpen = (XOpen[1] + Xclose[1]) / 2ENDIFIF XClose >= XOpen THENIF NOT LONGONMARKET and NOT doji and NOT daysforbiddenentry and PreviousStatus <> 1 and time >= InizioLong AND time <= FineLong THEN//LONG solo nell'orario stabilito.BUY 1 SHARES AT MARKET NEXTBAROPENPreviousStatus = 1ENDIFELSEIF NOT SHORTONMARKET and NOT doji and NOT daysforbiddenentry and PreviousStatus <> -1 and time >= InizioShort AND time<= FineShort THEN//SHORT solo nell'orario stabilito.SELLSHORT 1 SHARES AT MARKET NEXTBAROPENPreviousStatus = -1ENDIFENDIF//Uscire LONG e SHORT HEIKIN ASHIIF time = FineLong THEN //Chiudere le posizioni LONG all'ora stabilita.IF LONGONMARKET THENSELL AT MARKETENDIFELSEIF time = FineShort THEN //Chiudere le posizioni SHORT all'ora stabilitaIF SHORTONMARKET THENEXITSHORT AT MARKETENDIFENDIFENDIFstessa cosa per candele giapponesi standard o seno non so ditemi voi?
09/25/2017 at 4:33 PM #47292Io l’ho provato sul DAX ad 1 ora e non da risultati.
Mi sembra che alle righe 11 e 13 ci sia un’incongruenza, come ho detto prima. C’è una fine che precede l’inizio, mi pare impossibile da verificarsi!!!
Specifica bene cosa vuoi che faccia la tua strategia e quando vuoi che lo faccia e su quale timeframe.
09/28/2017 at 1:39 PM #47675io vorrei che il mio ts funzioni sia con candele heikin ashi e sia con candele normali con time frame da 1 a 10 minuti e se possibile che funzioni anche in vista (x) ticks.
che apra e che chiuda a mercato ogni posizione; esempio: apri-chiudi long, apri-chiudi short,escludendo le candele doji dal sistema,in modo che quando ne riscontra una non apre posizioni ne long che short al presentarsi una candela doji.
frammentando il capitale su più ordini e più strumenti in modo da adattarsi a qualsiasi strumento.
nei giorni che vanno da LUNEDì A VENERDì, in orari prestabiliti ,(esempio: alcuni mercati come azioni americane estese con IG MARKETS vanno dalle 10:00:00 alle 02:00:00 fino a giovedì mentre il venerdì fino alle 23:00:00). capisci cosa intendo io.
in modo che per ogni strumento codifico l’orario di inizio e fine da lunedì al venerdì per quei giorni lì.
con quelle condizioni di entrata-uscita sia long che short.
apre prende profitto e chiude la posizione a mercato alla chiusura della candela;sia LONG CHE SHORT.
- ts candele heiken ashi
-
AuthorPosts