Stealth StopLosses?

 

Publi

Stealth StopLosses?

 

Publi

Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 16

Discussione: Stealth StopLosses?

  1. #1
    So come codificare uno stoploss stealth standard, semplice. Non è affatto difficile.

    Che cosa succede se volevo mettere una trailing stop? Come posso fare questo stealth e mantenere comunque la recuperabilità se EA si spegne, interruzione di corrente, reset del sistema ecc. Inoltre, come posso impostarlo affinché funzioni per più ordini?

  2. #2
    Ciao a tutti. Prima di tutto, queste sono soluzioni molto brillanti che vedo qui. Il problema principale che sto avendo con le mie versioni di questi codici è la recuperabilità. Diciamo che il trailing stop è di 40 pips. L'attuale distanza stoploss è di 30 pips. All'improvviso, il terminale si spegne. Durante quel periodo: Il prezzo sale di 70 pips Ritorna a 30 pips. Quando il terminale torna online, lo stoploss - secondo il trailing stop - dovrebbe essere il prezzo corrente - 10 pips. Ma, per l'EA, il prezzo si è spostato di 40 pips verso l'alto, che porta il stoploss fino a 40 pips al di sotto del prezzo corrente invece di 10. Qualunque soluzione per questo? Stavo pensando di usare l'altobasso di una barra. Il problema è che non posso sempre dire se l'altobasso è successo dopo il commercio.

  3. #3
    Non puoi Se non si ha alcuna connessione con il proprio broker (e non sanno dove si desidera che la propria SL - sia finita o meno) allora non esiste SL. La soluzione migliore è codificare la propria logica SL finale nel tuo 'EA' in modo recuperabile e monitorare se il tuo EA è ancora connesso. In caso contrario, dovrebbe avvisarti (via SMSemail, ecc.) In modo recuperabile .... Memorizza tutte le informazioni commerciali in array (o strutture se lingua diversa da MQL) E.G. Magic unico, prezzo aperto, tipo (acquistovendita), prezzo HL, numero pip, dimensione SL, prezzo SL ecc. e salvare questi array a intervalli regolari su un file. Dovrai anche programmare le routine per caricare questi valori sull'inizializzazione di EA, nei casi in cui il tuo EAPC si blocca. E le routine da ???conoscere??? quando sei tornato da un'interruzione temporanea della connessione o da un arresto anomalo, in modo da poter esaminare lo stato attuale del gioco rispetto all'ultimo periodo precedente all'interruzione. Ti consiglierei di impostare una SL fissa con il broker che è più lontano dal tuo reale stealth stop ma non così lontano da essere inesistente IE se il tuo Stealth stop è attualmente a 30 pips dal prezzo quindi imposta un broker ferma a 100 pips quindi hai una copertura di emergenza

  4. #4
    Usa GlobalVariables per StopLoss, Current Trailing Stop, Etc .. - Non scadono per 4 settimane dopo l'ultimo utilizzo.
    http://book.mql4.com/variables/globals- Ovviamente il PC deve essere acceso e funzionante ma il PC può essere riavviato e riprendi da dove eri rimasto.

  5. #5
    Le variabili globali funzionano per uno scambio, difficile da applicare a più. Sembra che dovrò scrivere su un file un registro di zecche. (per scambiare la direzione di SL)

  6. #6
    Il modo migliore per configurare globals per multi è usare identifiori univoci: AccountNumber_TradeTicket_ [StopLoss] 23875443_19283_ [60] Quindi è facile analizzarlo usando le funzioni stringsearch e conversion. Dopo questo è facile creare funzioni CreateGlobalStop () e GetGlobalStop ()

  7. #7
    semplice, non diverso da un vero sentiero, basta usare le regole per chiudere un trade, invece di spostare un paio di linee di codice solo per te, hai bisogno di avere ordini selezionati Inserisci codice se (! HideTakeProfitOrderType () == OP_SELLOrderTakeProfit () ! = OrderOpenPrice () - TakeProfit * my_point) {OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - TakeProfit * my_point, OrderTakeProfit (), 0, CLR_NONE); } if (! HideTakeProfitOrderType () == OP_BUYOrderTakeProfit ()! = OrderOpenPrice () TakeProfit * my_point) {OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () TakeProfit * my_point, OrderTakeProfit (), 0, CLR_NONE); } if (HideTakeProfitOrderType () == OP_SELLMarketInfo (OrderSymbol (), MODE_BID) lt; = OrderOpenPrice () - TakeProfit * my_point) {OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_BID), Slippage, CLR_NONE ); } if (HideTakeProfitOrderType () == OP_BUYMarketInfo (OrderSymbol (), MODE_ASK) gt; = OrderOpenPrice () TakeProfit * my_point) {OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_ASK), Slippage, CLR_NONE ); }

  8. #8
    Ho appena capito che questo è il tuo thread ronald, dopo che tutti hanno visto il tuo codice, come potresti non saperlo

  9. #9
    Ho appena realizzato che ho pubblio il codice sbagliato, qui è la traccia invisibile Codice inserito void trail () {int totalorders = OrdersTotal (); for (int i = totalorders-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS); if (OrderTicket () == ticket || OrderTicket () == ticket2 || OrderTicket () == ticket3 || OrderTicket () == ticket4 || OrderTicket () == ticket5 || OrderTicket () == ticket6) { if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 0,001) cifre = 3; if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 0,01) cifre = 2; if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 0.1) cifre = 1; if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 1) cifre = 0; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0,0001) my_point = 0,0001; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0,00001) my_point = 0,0001; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0,01) my_point = 0,01; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0,001) my_point = 0,01; if (OrderSymbol () == OrderSymbol ()! HideTrailingStop) {if (OrderStopLoss () lt; OrderOpenPrice () OrderType () == OP_BUY MarketInfo (OrderSymbol (), MODE_ASK) -OrderOpenPrice () gt; = TrailingStop * my_point OrderStopLoss ( )! = OrderOpenPrice ()) OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice (), OrderTakeProfit (), 0, CLR_NONE); if (OrderStopLoss () gt; OrderOpenPrice () OrderType () == OP_SELL OrderOpenPrice () - MarketInfo (OrderSymbol (), MODE_BID) gt; = TrailingStop * my_point OrderStopLoss ()! = OrderOpenPrice ()) OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice (), OrderTakeProfit (), 0, CLR_NONE); if (OrderStopLoss () gt; = OrderOpenPrice () OrderType () == OP_BUY MarketInfo (OrderSymbol (), MODE_ASK) -OrderStopLoss () gt; = TrailingStop * my_point MarketInfo (OrderSymbol (), MODE_ASK) gt; = OrderStopLoss () (TrailingStep * 2) * my_point) OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss () TrailingStop * my_point, OrderTakeProfit (), 0, CLR_NONE); if (OrderStopLoss () lt; = OrderOpenPrice () OrderType () == OP_SELL OrderStopLoss () - MarketInfo (OrderSymbol (), MODE_BID) gt; = TrailingStop * my_point MarketInfo (OrderSymbol (), MODE_BID) lt; = OrderStopLoss () - (TrailingStep * 2) * my_point) OrderModify (OrderTicket (), OrderOpenPrice (), OrderStopLoss () - TrailingStop * my_point, OrderTakeProfit (), 0, CLR_NONE); } if (OrderSymbol () == OrderSymbol () HideTrailingStop) {if (OrderType () == OP_BUY) {if (MarketInfo (OrderSymbol (), MODE_ASK) -OrderOpenPrice () gt; = TrailingStop * my_pointObjectGet (sl OrderTicket () b, OBJPROP_PRICE1) lt; OrderOpenPrice ()) {ObjectCreate (sl OrderTicket () b, OBJ_HLINE, 0, 0, 0); ObjectSet (sl OrderTicket () b, OBJPROP_PRICE1, OrderOpenPrice ()); ObjectSet (sl OrderTicket () b, OBJPROP_COLOR, Red); ObjectSet (sl OrderTicket () b, OBJPROP_STYLE, 3); } if (MarketInfo (OrderSymbol (), MODE_ASK) -ObjectGet (sl OrderTicket () b, OBJPROP_PRICE1) gt; = TrailingStop * my_pointObjectGet (sl OrderTicket () b, OBJPROP_PRICE1) gt; = OrderOpenPrice () ObjectGet (sl OrderTicket () b, OBJPROP_PRICE1) lt; MarketInfo (OrderSymbol (), MODE_ASK) -TrailingStep * my_point) {ObjectSet (sl OrderTicket () b, OBJPROP_PRICE1, MarketInfo (OrderSymbol (), MODE_ASK) -TrailingStop * my_point); }} if (OrderType () == OP_BUYMarketInfo (OrderSymbol (), MODE_ASK) lt; = ObjectGet (sl OrderTicket () b, OBJPROP_PRICE1)) OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_ASK) ), Slippage, CLR_NONE); count_orders (); if (OrderType () == OP_SELL) {if (OrderOpenPrice () - MarketInfo (OrderSymbol (), MODE_BID) gt; = TrailingStop * my_pointObjectGet (sl OrderTicket () s, OBJPROP_PRICE1) gt; OrderOpenPrice ()) {ObjectCreate ( sl OrderTicket () s, OBJ_HLINE, 0, 0, 0); ObjectSet (sl OrderTicket () s, OBJPROP_PRICE1, OrderOpenPrice ()); ObjectSet (sl OrderTicket () s, OBJPROP_COLOR, Red); ObjectSet (sl OrderTicket () s, OBJPROP_STYLE, 3); } if (ObjectGet (sl OrderTicket () s, OBJPROP_PRICE1) -MarketInfo (OrderSymbol (), MODE_BID) gt; = TrailingStop * my_pointObjectGet (sl OrderTicket () s, OBJPROP_PRICE1) lt; = OrderOpenPrice () ObjectGet (sl OrderTicket () s, OBJPROP_PRICE1) gt; MarketInfo (OrderSymbol (), MODE_BID) TrailingStep * my_point) {ObjectSet (sl OrderTicket () s, OBJPROP_PRICE1, MarketInfo (OrderSymbol (), MODE_BID) TrailingStop * my_point) ; }} if (OrderType () == OP_SELLMarketInfo (OrderSymbol (), MODE_BID) gt; = ObjectGet (sl OrderTicket () s, OBJPROP_PRICE1)) OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_ASK ), Slippage, CLR_NONE); count_orders (); }}}}

  10. #10
    non solo è invisibile, ma traccia le linee sul grafico in modo che tu possa vedere la sl, ho provato solo su ibfx, mentre online, se offline, il marketinfo non funziona

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.