Massimo e minimo specifici
Forums › ProRealTime forum Italiano › Supporto ProOrder › Massimo e minimo specifici
- This topic has 15 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
-
-
03/09/2020 at 11:09 AM #121537
Gent.mi, avrei bisogno di individuare il massimo e il minimo che va dalle 9.00 alle 12.00 per poi utilizzarli alle 15.30 con l’apertura dell’america in brakout.
Ho trovato questi codici ma, usando il timeframe ad 1 minuto, mi fanno aprire le operazioni ogni minuto.
1234IF (TIME >= 090000) AND (TIME <= 120000) THENb=Highc=LowENDIF1234567891011if intradaybarindex=0 thenvaleurhaute=0valeurbasse=close*100endiftcondition = time>090000 and time<=100000if tcondition thenvaleurhaute = max(valeurhaute,high)valeurbasse = min(valeurbasse,low)endifMi aiutereste?
03/09/2020 at 11:13 AM #121542Eccolo:
12345678IF Time = 090000 THENb = highc = lowENDIFIF (TIME >= 090000) AND (TIME <= 120000) THENb = max(b,High)c = min(c,Low)ENDIF03/09/2020 at 11:32 AM #121548Grazie Roberto gentilissimo. Ho messo giù il seguente sistema ma mi fa aprire sempre tante operazioni. Io utilizzo come time frame per entrare il minuto.
1234567891011121314151617181920212223BegTime=143000EndTime=163000IF Time = 090000 THENb = highc = lowENDIFIF (TIME >= 090000) AND (TIME <= 120000) THENb = max(b,High)c = min(c,Low)ENDIF//---------------------------------------------------------------------------------------If Time >= BegTime and Time <= EndTime thenBuy 1 contract at b stopendifIf Time >= BegTime and Time <= EndTime thenSellShort 1 contract at c stopendifset stop ploss 15set target pprofit 9Ti allego un’immagine.
03/09/2020 at 11:56 AM #121550Il problema principale è che tu esegui sempre ordini STOP, ma il prezzo varia e può essere anche migliorativo (ad esempio se ti entra a B, esce, a quel punto il tuo ordine STOP viene preso LIMIT o a mercato, quindi entra immediatamente).
Prova a modificare le righe 14-20 con:
123456789101112131415If Time >= BegTime and Time <= EndTime and Not OnMarket thenif close < b thenBuy 1 contract at b stopelseBuy 1 contract at b limitendifendifIf Time >= BegTime and Time <= EndTime abd Not OnMarket thenif close > c thenSellShort 1 contract at c stopelseSellShort 1 contract at c limitendifendif03/09/2020 at 11:59 AM #121552Resta sempre il problema che, in esecuzione (non in backtest) il prezzo di entrata deve essere a mercato, oppure deve rispettare la distanza minima che il broker ha stabilito per ciascun strumento.
Se, ad esempio, per il DAX il broker ha stabilito che il prezzo d’entrata non deve essere inferiore/superiore a 6 pips da quello corrente, se non rientra in questo intervallo l’ordine viene eseguito a mercato (o respinto).
03/09/2020 at 2:41 PM #121568Si Roberto ho modificato il sistema nel modo seguente e sembra andare bene. L’unico problema è che mi fa entrare più volte.
12345678910111213141516171819202122232425262728BegTime=143000EndTime=163000IF Time = 090000 THENb = highc = lowENDIFIF (TIME >= 090000) AND (TIME <= 120000) THENb = max(b,High)c = min(c,Low)ENDIF//---------------------------------------------------------------------------------------If Time >= BegTime and Time <= EndTime and Not OnMarket thenif close < b thenBuy 1 contract at b stopendifendifIf Time >= BegTime and Time <= EndTime and Not OnMarket thenif close > c thenSellShort 1 contract at c stopendifendifset stop ploss 15set target pprofit 9Però ora che ci penso posso risolverlo in questo modo: dico al sistema di fare una sola operazione al giorno (che poi è quello che dovrebbe fare) e solo se prende lo stop fare il rientry. Ora ci lavoro, perchè dovrei avercelo già il codice. Ti aggiorno
03/09/2020 at 2:48 PM #121570Ecco qui Roberto, dovrei aver risolto. Fa solo un’operazione al giorno, tranne nel caso in cui la prima operazione è andata in stop, in tal caso mi farà il rientry.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546BegTime=143000EndTime=163000IF Time = 090000 THENb = highc = lowENDIFIF (TIME >= 090000) AND (TIME <= 120000) THENb = max(b,High)c = min(c,Low)ENDIF//---------------------------------------------------------------------------------------if intradaybarindex=0 thentradethisday=0elseif barindex=tradeindex thentradethisday=1endifendif// questo è il rientryIF NOT ONMARKET THENIF POSITIONPERF(1)<0 THENBUY 1 CONTRACTS AT b stopENDIFIF POSITIONPERF(1)<0 thenSELLSHORT 1 CONTRACTS at c stopENDIFENDIFIf Time >= BegTime and Time <= EndTime and Not OnMarket and tradethisday=0 thenif close < b thenBuy 1 contract at b stopendifendifIf Time >= BegTime and Time <= EndTime and Not OnMarket and tradethisday=0 thenif close > c thenSellShort 1 contract at c stopendifendifset stop ploss 15set target pprofit 903/09/2020 at 3:10 PM #121572Le righe 23-30 non mi sembrano corrette, le riscriverei così:
123IF StrategyProfit < StrategyProfit[1] THENtradethisday=0ENDIFPerché POSITIONPERF ti da il risultato momentaneo di una posizione aperta, mentre STRATEGYPROFIT dopo la chiusura.
03/09/2020 at 4:18 PM #12158303/10/2020 at 11:32 AM #121665Gent.mo Roberto avrei un dubbio. Il codice seguente fa fare al sistema una sola operazione al giorno. Il mio dubbio è:
- ho un sistema che ha questa dicitura che opera la mattina
- ho un altro sistema che ha questa dicitura ma che opera il pomeriggio
- ho altri sistemi che girano contemporaneamente ai precedenti, però non hanno questa dicitura
Se il primo sistema quello della mattina fa la sua operazione, gli altri si fermano o continuano in modo autonomo?
1234567if intradaybarindex=0 thentradethisday=0elseif barindex=tradeindex thentradethisday=1endifendif03/10/2020 at 11:43 AM #121667Il primo che entra, quindi quello della mattina, blocca tutto.
Se vuoi che il trading riparta ad un certo punto della giornata, senza aspettare il giorno successivo, devi rimettere la variabile a 0, ad esempio ad una certa ora, oppure quando si verifica un incrocio di medie o l’RSI entra o esce da una certa zona, ecc…
Esempio 1:
123IF Time >= 143000 THEN //riparti dalle 14:30tradethisday=0ENDIFEsempio 2:
123IF Rsi[14](close) CROSSES OVER 70 THEN //riparti quando RSI entra in IperCompratotradethisday=0ENDIFEsempio 3:
123IF average[10,0](close) CROSSES OVER average[50,0](close) THEN //riparti quando le due medie incrociano al rialzotradethisday=0ENDIF03/10/2020 at 12:00 PM #12166903/10/2020 at 5:52 PM #121745Gent.mo Roberto ho inserito il codice suddetto sulla seguente strategia, però dopo la prima operazione il sistema si è bloccato. Non so se ho sbagliato qualcosa.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495//-------------------------------------------------------------------------// Codice principale : coach supertrendmultrame 2//-------------------------------------------------------------------------// 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.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 220000ONCE varlow=5 //number of candle for trailing stop longONCE varhigh=5 //number of candle for trailing stop shorttimeframe(30 minutes,updateonclose)// Condizioni per entrare su posizioni longindicator1 = SuperTrend[3,10]if indicator1 < close thencoloreverde = indicator1colorerosso = 0endif// Condizioni per entrare su posizioni shortindicator1 = SuperTrend[3,10]if indicator1 > close thencolorerosso = indicator1coloreverde = 0endiftimeframe(default) //time frame 1 minuto// Condizioni per entrare su posizioni longIF close<coloreverde and close>colorerosso then //riparti dalle 14:30tradethisday=0ENDIFIF low<coloreverde and close>coloreverde and tradethisday=0 THENBUY 1 CONTRACT AT high + 1 stopENDIFif longonmarket thenexitlow=lowest[varlow](low) //exit level for long positionsell at exitlow - 2 stopendif// Condizioni per entrare su posizioni longIF high>colorerosso and close<colorerosso and tradethisday=0 THENSELLSHORT 1 CONTRACT AT low - 1 stopENDIFif shortonmarket thenexithigh=highest[varhigh](high) //exit level for short positionexitshort at exithigh + 2 stopendif// trailing stop functiontrailingstart = 10 //20 trailing will start @trailinstart points profittrailingstep = 0 //12 trailing step to move the "stoploss//reset the stoploss valueIF NOT ONMARKET THENnewSL = 0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL = 0 AND CLOSE - TRADEPRICE(1) >= TrailingStart*PipSize THENnewSL = TRADEPRICE(1) + TrailingStep*PipSizeENDIF//next movesCAND = BarIndex - TradeIndexIF newSL > 0 AND CLOSE[1] > HIGHEST[CAND](CLOSE) THENnewSL = CLOSE[1] - TrailingStart*PipSizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL = 0 AND TRADEPRICE(1) - CLOSE[1] >= TrailingStart*PipSize THENnewSL = TRADEPRICE(1) - TrailingStep*PipSizeENDIF//next movesCAND = BarIndex - TradeIndexIF newSL > 0 AND CLOSE[1] < LOWEST[CAND](CLOSE) THENnewSL = CLOSE[1] + TrailingStart*PipSizeENDIFENDIF//stop order to exit the positionsIF newSL > 0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF// Stop e targetSET STOP pLOSS 100SET TARGET pPROFIT 10003/10/2020 at 6:36 PM #121752Per prima cosa vedo che non hai mai messo tradethisday=0, a cosa ti serve se non lo usi?
Per il resto a me funziona regolarmente e mi ha aperto e chiuso molte posizioni.
03/10/2020 at 10:04 PM #121769Si Roberto non so se ho capito comunque ti estrapolo la parte in cui c’è tradethisday=0. Può essere che il sistema si è bloccato per un altro motivo. Nel backtest non dà problemi. Non saprei.
123456789101112131415161718IF close<coloreverde and close>colorerosso then //riparti dalle 14:30tradethisday=0ENDIFIF low<coloreverde and close>coloreverde and tradethisday=0 THENBUY 1 CONTRACT AT high + 1 stopENDIFif longonmarket thenexitlow=lowest[varlow](low) //exit level for long positionsell at exitlow - 2 stopendif// Condizioni per entrare su posizioni longIF high>colorerosso and close<colorerosso and tradethisday=0 THENSELLSHORT 1 CONTRACT AT low - 1 stopENDIF -
AuthorPosts
Find exclusive trading pro-tools on