Non mi inserisce l'ordine pendente
Forums › ProRealTime forum Italiano › Supporto ProOrder › Non mi inserisce l'ordine pendente
- This topic has 79 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
-
-
04/01/2020 at 3:24 PM #124249
Buongiorno.
Premetto che sono un novizio ed è la prima volta che scrivo su questo forum, e sicuramente la cosa chi chiedo avrà una soluzione semplicissima, praticamente la porzione di codice sotto entra a mercato in una direzione e poi quando ordine si becca lo stop, allora parte l’ordine pendente. Quando faccio partire il programma non mi entra più a mercato e non mi inserisce il pendente, cortesemente mi potreste aiutare a risolvere il problema?
Vi ringrazio tutti anticipatamente.
123456789StopEntrataShortSTD = (high + SpreadEntrata) - closeSELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrataShortSTD)IF NOT SHORTONMARKET THENEntrataPendenteLongSTD = close + max(StopMinimo, StopEntrataShortSTD) + 1StopPendenteLongSTD = EntrataPendenteLongSTD - (low - SpreadPendente - MarginePendente)BUY LotNumber CONTRACT AT EntrataPendenteLongSTD STOPSET STOP pLOSS StopPendenteLongSTDENDIF04/01/2020 at 5:12 PM #124258A parte altre considerazioni per le quali occorre riprodurre la situazione e serve il codice, lo strumento tradato ed il TF usato, alle linee 1 e 6 devi convertire la differenza di prezzo in pips MOLTIPLICANDO quel risultato * PIPSIZE.
In alternativa puoi lasciare tutto così, però devi usare LOSS, non pLOSS, perché quella “p” sta per PIPS e non una semplice differenza di prezzo.
Se l’hai testato sul Dax, Nikkei o altri strumenti simili può funzionare ugualmente, su molti altri e sul Forex, hai risultati completamente errati sullo SL.
04/01/2020 at 5:21 PM #12426104/01/2020 at 5:41 PM #124269Scusa Roberto un aiuto sul codice sotto, non riesco a capire come mai mi apre
Grazie mille.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253IF BarraNormale = 1 THENIF BarraVerde = 1 THENSONOQUI = 1StopEntrataShortSTD = ((high + SpreadEntrata) - close) * pipsizeSELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrataShortSTD)IF NOT ONMARKET THENPASSO = 1EntrataPendenteLongSTD = close + max(StopMinimo, StopEntrataShortSTD) + 1StopPendenteLongSTD = (EntrataPendenteLongSTD - (low - SpreadPendente - MarginePendente)) * pipsizeBUY LotNumber CONTRACT AT EntrataPendenteLongSTD STOPSET STOP pLOSS StopPendenteLongSTDENDIFELSIF BarraVerde = 0 THENSONOQUI = 2StopEntrataLongSTD = (close - (low - SpreadEntrata)) * pipsizeBUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrataLongSTD)IF NOT ONMARKET THENPASSO = 2EntrataPendenteShortSTD = close - max (StopMinimo,StopEntratalongSTD) - 1StopPendenteShortSTD = ((high + SpreadPendente + MarginePendente) - EntrataPendenteShortSTD) * pipsizeSELLSHORT LotNumber CONTRACT AT EntrataPendenteShortSTD STOPSET STOP pLOSS StopPendenteShortSTDENDIFENDIFELSEIF PinBarLong = 1 THENSONOQUI = 3StopEntrataShortPIN = ((high + SpreadEntrata) - close) * pipsizeSELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrataShortPIN)IF NOT ONMARKET THENPASSO = 3EntrataPendenteLongPIN = close + max(Stopminimo, StopEntrataShortPIN) + 1StopPendenteLongPIN = (EntrataPendenteLongPIN - (low - SpreadPendente - MarginePendente)) * pipsizeBUY LotNumber CONTRACT AT EntrataPendenteLongPIN STOPSET STOP pLOSS StopPendenteLongPINENDIFELSIF PinBarLong = 0 THENSONOQUI = 4StopEntrataLongPIN = (close - (low - SpreadEntrata)) * pipsizeBUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrataLongPIN)IF NOT ONMARKET THENPASSO = 4EntrataPendenteShortPIN = close - max(StopMinimo, StopEntrataLongPIN) - 1StopPendenteShortPIN = ((high + SpreadPendente + MarginePendente) - EntrataPendenteShortPIN) * pipsizeSELLSHORT LotNUmber CONTRACT AT EntrataPendenteShortPIN STOPSET STOP pLOSS StopPendenteShortPINENDIFENDIFENDIF04/01/2020 at 6:50 PM #124276Scusami Roberto, sotto mi sono incasinato cl modificare il messaggio. Il problema non sta tanto nei valori che con GRAPH mi tornano corretti, ma sta nel fatto che adesso mi entra a mercato con lo stop del pendente (StopPendente), mentre nell’ordine pendente non mi indica lo stop. Non rieco a capire dove sta l’errore, sotto ti riporto tutto il codice.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253IF BarraNormale = 1 THENIF BarraVerde = 1 THENSONOQUI = 1StopEntrata = ((high + SpreadEntrata) - close)SELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsize//IF NOT ONMARKET THENPASSO = 1EntrataPendente = close + max(StopMinimo, StopEntrata) + 1StopPendente = (EntrataPendente - (low - SpreadPendente - MarginePendente))BUY LotNumber CONTRACT AT EntrataPendente STOPSET STOP pLOSS StopPendente * pipsize//ENDIFELSIF BarraVerde = 0 THENSONOQUI = 2StopEntrata = (close - (low - SpreadEntrata))BUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsize//IF NOT ONMARKET THENPASSO = 2EntrataPendente = close - max (StopMinimo,StopEntrata) - 1StopPendente = ((high + SpreadPendente + MarginePendente) - EntrataPendente)SELLSHORT LotNumber CONTRACT AT EntrataPendente STOPSET STOP pLOSS StopPendente * pipsize//ENDIFENDIFELSEIF PinBarLong = 1 THENSONOQUI = 3StopEntrata = ((high + SpreadEntrata) - close)SELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsize//IF NOT ONMARKET THENPASSO = 3EntrataPendente = close + max(Stopminimo, StopEntrata) + 1StopPendente = (EntrataPendente - (low - SpreadPendente - MarginePendente))BUY LotNumber CONTRACT AT EntrataPendente STOPSET STOP pLOSS StopPendente * pipsize//ENDIFELSIF PinBarLong = 0 THENSONOQUI = 4StopEntrata = (close - (low - SpreadEntrata))BUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsize//IF NOT ONMARKET THENPASSO = 4EntrataPendente = close - max(StopMinimo, StopEntrata) - 1StopPendente = ((high + SpreadPendente + MarginePendente) - EntrataPendente)SELLSHORT LotNUmber CONTRACT AT EntrataPendente STOPSET STOP pLOSS StopPendente * pipsize//ENDIFENDIFENDIFGrazie mille.
04/02/2020 at 11:20 AM #124330Perché non può esserci più di uno SL unico per tutta la strategia, Long o Short, a mercato o pendente che sia.
Ogni volta che trova SET STOP pLOSS (o simili) questo SOSTITUISCE i precedenti ordini di STOP, anche per le posizioni già aperte.
Nel tuo caso, alla riga 5 entrerà con lo SL della riga 12, perché viene dopo quello della riga 6 (e così per gli altri).
04/02/2020 at 11:39 AM #124332Grazie mille Roberto. Quindi se ho capito bene, non posso entrare a mercato con uno SL ed inserire un ordine che entra in una posizione con uno SL diverso dal primo, giusto?
Nemmeno se attivo le righe di IF che ho commentato?
Grazie ancora Roberto.
04/02/2020 at 11:50 AM #124333Puoi farlo, ma sappi che ProOrder prende per buono sempre l’ultimo ordine di STOP eseguito, che sia all’interno di IF…ENDIF o meno.
Non è un errore che viene segnalato, puoi metterne quanti ne vuoi di SET STOP LOSS, anche perché a volte capita di variarli secondo la propria strategia, quindi DEVE consentirli, solo che prende per buono sempre l’ultimo che viene eseguito.
Se uno STOP LOSS successivo è all’interno di IF…ENDIF con certe condizioni che non si verificano, allora non lo esegue, ovviamente, ma al momento in cui le condizioni si verificano e quella riga viene eseguita, ogni precedente STOP LOSS è sostituito dal nuovo.
04/02/2020 at 12:10 PM #12433504/06/2020 at 7:31 AM #124748Buongiorno Roberto.
Sotto il codice che ho scritto per entrare a mercato. Lanciato ieri sera mi ha saltato le barre dell 4 delle 6 e delle 8, ma non riesco a capire il perchè, se cortesemente mi dai una dritta.
Grazie mille.
Mauro Rossetto.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950//Definisco il tipo barraIF (close > (high + low) / 2) AND NOT AltaVolatilita THENTipoBarra = 1ELSIF (close < (high + low) /2) AND NOT AltaVolatilita THENTipoBarra = 2ELSIF (close > (high + low) / 2) AND AltaVolatilita THENTipoBarra = 3ELSIF (close > (high + low) / 2) AND AltaVolatilita AND (high - close) > StopMassimo THENTipoBarra = 4ELSIF (close < (high + low) /2) AND AltaVolatilita AND (close - low) < StopMassimo THENTipoBArra = 5ELSIF (close < (high + low) /2) AND AltaVolatilita AND (close - low) > StopMassimo THENTipoBarra = 6ENDIF//ENDIF// Chiude tutte le posizioni alla chiusura della barraIF (BarIndex - TradeIndex) >= 1 THENSELL AT MARKET //exit LONG trades, if anyEXITSHORT AT MARKET //exit SHORT trades, if anyENDIF//Credo dica il profitto è dato dal capitale + il ricavato dal programmaMyProfit = Capitale + StrategyProfit//Credo centri qualche cosa con l'aumento della size al cambio del meseIF Month <> Month[1] THENLotNumber = max(MinLots, (MyProfit / Capitale))ENDIFIF TipoBarra = 1 AND TradingDay THENStopEntrata = ((high + SpreadEntrata) - close)SELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeELSIF TipoBarra = 2 AND TradingDay THENStopEntrata = (close - (low - SpreadEntrata))BUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeELSIF TipoBarra = 3 AND TradingDay THENStopEntrata = ((high + SpreadEntrata) - close)SELLSHORT LotNumber CONTRACT AT MARKETIF StopEntrata >= 210 THENStopEntrata = StopMassimo + 10ENDIFSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeELSIF TipoBarra = 5 AND TradingDay THENStopEntrata = (close - (low - SpreadEntrata))BUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeENDIF04/06/2020 at 8:45 AM #124757Devo eseguirlo, dimmi su che strumento e su quale timeframe lo fai girare.
È completo il codice?
04/06/2020 at 8:56 AM #124763Japan 225 Cash($1) barre orarie.
Sotto il codice completo.
Grazie mille.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374DEFPARAM CumulateOrders = FalseDEFPARAM PreLoadBars = 10000////////////////////////////////////////////////////////////////////////////////////////ONCE Capitale = 4690ONCE LotNumber = 1ONCE MinLots = 1ONCE SpreadEntrata = 10 * pipsize//ONCE SpreadPendente = 10 * pipsize//ONCE MargineEntrata = 1 * pipsize//ONCE MarginePendente = 1 * pipsizeONCE StopMinimo = 40 * pipsizeONCE StopMassimo = 200 * pipsizeONCE LimiteMaxBarra = 450 * pipsizeTradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 5 //trade only Mon. to Fri.AltaVolatilita = range > LimiteMaxBarra//Definisco il tipo barraIF (close > (high + low) / 2) AND NOT AltaVolatilita THENTipoBarra = 1ELSIF (close < (high + low) /2) AND NOT AltaVolatilita THENTipoBarra = 2ELSIF (close > (high + low) / 2) AND AltaVolatilita THENTipoBarra = 3ELSIF (close > (high + low) / 2) AND AltaVolatilita AND (high - close) > StopMassimo THENTipoBarra = 4ELSIF (close < (high + low) /2) AND AltaVolatilita AND (close - low) < StopMassimo THENTipoBArra = 5ELSIF (close < (high + low) /2) AND AltaVolatilita AND (close - low) > StopMassimo THENTipoBarra = 6ENDIF//ENDIF// Chiude tutte le posizioni alla chiusura della barraIF (BarIndex - TradeIndex) >= 1 THENSELL AT MARKET //exit LONG trades, if anyEXITSHORT AT MARKET //exit SHORT trades, if anyENDIF//Credo dica il profitto è dato dal capitale + il ricavato dal programmaMyProfit = Capitale + StrategyProfit//Credo centri qualche cosa con l'aumento della size al cambio del meseIF Month <> Month[1] THENLotNumber = max(MinLots, (MyProfit / Capitale))ENDIFIF TipoBarra = 1 AND TradingDay THENStopEntrata = ((high + SpreadEntrata) - close)SELLSHORT LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeELSIF TipoBarra = 2 AND TradingDay THENStopEntrata = (close - (low - SpreadEntrata))BUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeELSIF TipoBarra = 3 AND TradingDay THENStopEntrata = ((high + SpreadEntrata) - close)SELLSHORT LotNumber CONTRACT AT MARKETIF StopEntrata >= 210 THENStopEntrata = StopMassimo + 10ENDIFSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeELSIF TipoBarra = 5 AND TradingDay THENStopEntrata = (close - (low - SpreadEntrata))BUY LotNumber CONTRACT AT MARKETSET STOP pLOSS max (StopMinimo,StopEntrata) * pipsizeENDIFGRAPH max (StopMinimo,StopEntrata) * pipsizeGRAPH (high - close)GRAPH TipoBarraGRAPH (close - low)04/06/2020 at 10:13 AM #124786A me le ha aperte regolarmente, alle 4, alle 6 e alle 8, ecc…
Prova ad inserire un capitale maggiore (metti 1 milione), non vorrei fosse insufficiente.
04/06/2020 at 11:38 AM #124822Roberto, ma nel caso di capitale insufficiente, non dovrebbe dirmi con il triangolo giallo ordine rifiutato dalla piattaforma per mancanza di fondi?
Se vado su IG, vedo che la posizione si apre e si chiude subito dopo, come se appena aperta qualche cosa all’interno del programma la facesse chiudere subito, o che non prenda lo stop loss e si prende quello minimo da piattaforma.Roberto un altra domanda, il programma quando viene eseguito in una candela oraria? Ed in una candela giornaliera?
Io all’inizio chiudo tutte le posizioni e poi ne apro di nuovo in base alla barra appena chiusa. Forse è qui che il programma sbaglia.
Grazie mille ancora del tuo aiuto.
04/07/2020 at 7:13 AM #124956Buongiorno Roberto.
Ieri ho risolto una cosa adesso me ne manca un altra, sto facendo confusione con i pendenti di tipo STOP e LIMIT. Ti copio il codice, puoi dare una occhiata se ti balza all’occhio qualche errore?
Grazie mille.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384DEFPARAM CumulateOrders = FalseDEFPARAM PreLoadBars = 10000////////////////////////////////////////////////////////////////////////////////////////ONCE Capitale = 4690ONCE LotNumber = 1ONCE MinLots = 1ONCE SpreadEntrata = 10 * pipsizeONCE SpreadPendente = 10 * pipsize//ONCE MargineEntrata = 1 * pipsizeONCE MarginePendente = 1 * pipsizeONCE StopMinimo = 40 * pipsizeONCE StopMassimo = 200 * pipsizeONCE LimiteMaxBarra = 450 * pipsizeTradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 5 //trade only Mon. to Fri.//Testo se la barra è di alta volatilitàAltaVolatilita = range > LimiteMaxBarra//Definisco il tipo barraIF (close > (high + low) / 2) AND NOT AltaVolatilita THENTipoBarra = 1ELSIF (close < (high + low) /2) AND NOT AltaVolatilita THENTipoBarra = 2ELSIF (close > (high + low) / 2) AND AltaVolatilita THENTipoBarra = 3ELSIF (close > (high + low) / 2) AND AltaVolatilita AND (high - close) > StopMassimo THENTipoBarra = 4ELSIF (close < (high + low) /2) AND AltaVolatilita AND (close - low) < StopMassimo THENTipoBArra = 5ELSIF (close < (high + low) /2) AND AltaVolatilita AND (close - low) > StopMassimo THENTipoBarra = 6ENDIF// Chiude tutte le posizioni alla chiusura della barraIF (BarIndex - TradeIndex) >=0 THEN//IF ONMARKET THENSELL AT MARKET //exit LONG trades, if anyEXITSHORT AT MARKET //exit SHORT trades, if anyENDIF//Credo dica il profitto è dato dal capitale + il ricavato dal programmaMyProfit = Capitale + StrategyProfit//Credo centri qualche cosa con l'aumento della size al cambio del meseIF Month <> Month[1] THENLotNumber = max(MinLots, (MyProfit / Capitale))ENDIFIF TipoBarra = 1 AND TradingDay THENStopEntrata = ((high + SpreadEntrata) - close)EntrataPendente = close + max(StopMinimo, StopEntrata) + 1StopPendente = (EntrataPendente - (low - SpreadPendente - MarginePendente))//STOP CORRETTOBUY LotNumber CONTRACT AT EntrataPendente * pipsize STOPSET STOP pTRAILING StopPendente * pipsizeELSIF TipoBarra = 2 AND TradingDay THENStopEntrata = (close - (low - SpreadEntrata))EntrataPendente = close - max (StopMinimo,StopEntrata) - 1StopPendente = ((high + SpreadPendente + MarginePendente) - EntrataPendente)//STOP CORRETTOSELLSHORT LotNumber CONTRACT AT EntrataPendente * pipsize STOPSET STOP pTRAILING StopPendente * pipsizeELSIF Tipobarra = 4 AND TradingDay THENIF OpenDayOfWeek = 1 THENEntrataPendente = high[2] + SpreadEntrata - StopMAssimoELSEEntrataPendente = high + SpreadEntrata - StopMAssimoENDIF//SELLSHORT LotNumber CONTRACT AT EntrataPendente * pipsize STOPSELLSHORT LotNumber CONTRACT AT EntrataPendente * pipsize LIMITSET STOP pTRAILING StopMassimoELSIF TipoBarra = 6 AND TradingDay THENEntrataPendente = low - SpreadEntrata + StopMAssimoSELLSHORT LotNumber CONTRACT AT EntrataPendente * pipsize STOPSET STOP pTRAILING StopMassimoENDIFGRAPH max (StopMinimo,StopEntrata) * pipsizeGRAPH EntrataPendenteGRAPH StopPendente * pipsizeGRAPH Tipobarra -
AuthorPosts
Find exclusive trading pro-tools on