Errori tipici e come affrontarli quando si ha a che fare con l'ambiente del trading - pagina 8

 
fxsaber:

La ricetta, come si dice, è universale:

  1. Ha incontrato un ordine a mercato con ID zero - esci immediatamente.
  2. MT5-OrderSend è stato riscritto per restituire sempre Result.deal non nullo - il codice sorgente è stato pubblicato nella KB.
  3. Dopo ogni OrdineInvia o Dormiente, vai al punto 1.
Con questo approccio qualsiasi TC (assoluto al 100%) funzionerà.

E non è di questo che sto parlando?

A volte la gente ha una strana percezione delle informazioni :)

Solo non uscire immediatamente all'ordine con ID zero, ma la sua elaborazione sullo stesso tick - una sorta di aspettativa predefinita.

Il resto è tutto quello di cui parlavo. Si è scoperto che è il fondo :)))

 

Pensare all'adeguatezza del loro TOR. Una situazione reale che accade ogni giorno su MT4

  1. Niente è aperto.
  2. Avete piazzato BuyLimit e poi nessun OrderSend.
  3. Dopo un po' hai trovato 3 posizioni BUY e BuyLimit.
  4. Dopo un po' si rilevano 2 posizioni BUY e BuyLimit.
  5. Tra un po' avrete 5 posizioni di acquisto.
  6. Tra un po' è necessario rilevare 1 posizione BUY.
  7. Dopo un po' di tempo si rileva il punto 1.

Questo è il più facile. Pertanto, il modello proposto contiene

// Находит позицию соответствующего типа
bool PositionsScan( const string Symb, const ENUM_POSITION_TYPE Type );
Bene, e quale livello di resilienza TC scrivere e per chi - ognuno decide per sé.
 
fxsaber:

  1. Niente è stato aperto.
  2. Hai impostato un BuyLimit e poi nessun OrderSend.
  3. Dopo un po' si hanno 3 posizioni BUY e BuyLimit.
  4. Dopo un po' si hanno 2 posizioni BUY e BuyLimit.
  5. Tra un po' devi chiudere 5 posizioni BUY.
  6. Tra un po' è necessario rilevare 1 posizione BUY.
  7. Dopo un certo periodo di tempo si rileva il punto 1.

Quindi BuyLimit è una posizione EA. Gli altri sono manuali.

Qualsiasi TS può distinguere tra le sue posizioni e quelle degli altri.

La conversazione riguardava le loro posizioni.

 
Artyom Trishkin:

Quindi il BuyLimit è quello impostato dal consulente. Gli altri sono manuali.

Qualsiasi TS può distinguere tra il proprio e quello di un altro.

La conversazione riguardava le loro posizioni.

Niente manualmente o da un altro Expert Advisor. Solo un BuyLimit è esposto. Tutte le posizioni BUY menzionate hanno la stessa magia di BuyLimit.

 
fxsaber:

Niente manualmente o da un altro consulente. Solo un BuyLimit è impostato. Tutte le posizioni BUY menzionate hanno lo stesso numero magico di BuyLimit.

Quindi - esecuzione parziale.

 
Artyom Trishkin:

Quindi - performance parziale.

Solo questo.

 
fxsaber:

Influenzare QB per smettere di postare codice con bug, penso che ne varrebbe la pena.

 
Artyom Trishkin:

Solo non per uscire immediatamente su un ordine con ID zero, ma per processarlo nello stesso tick - una sorta di attesa impostata.

Sì, uscire immediatamente non è una buona soluzione.

 
I commenti non relativi a questo argomento sono stati spostati in "Tutte le domande dei neofiti su MQL4, aiuto e discussione su algoritmi e codici".
 
Ivan Ivanov:


2018.02.20 15:20:35.845 Trades ordine #66745055 comprare 0.01 / 0.01 EURUSDeur a mercato fatto in 610.625 ms

2018.02.20 15:20:35.935 Transazioni affare #5461453 comprare 0.01 EURUSDeur a 1.23403 fatto (basato sull'ordine #66745055)

2018.02.20 15:20:35.845 TestBUY (EURUSDeur,M15) retcode=10009 deal=0 order=66745055

Se la richiesta è soddisfatta (10009) , perché trattare=0

Buon pomeriggio!

Ho una domanda simile per tutti e specialmente per fxsaber.
A prima vista sembra una domanda primitiva, ma non riesco a trovare la risposta.
Qui https://www.mql5.com/ru/forum/6343/page939 mi è stato detto "Prova a cercarlo. fxsaber sta lavorando su questo problema da un po'. Quello che ha funzionato non lo so, non mi interessa". Così ho deciso di chiedere a voi.

La domanda è questa. Ho aperto una posizione e voglio stampare il contenuto di MqlTradeResult:

        MqlTradeRequest request={0};
        MqlTradeResult  result={0};
        
        request.action   = TRADE_ACTION_DEAL;    // type of trade operation
        request.symbol   = Pair1;                // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;            // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
        if(OrderSend(request,result))       
        Print ("retcode = " +IntegerToString (result.retcode) + "; ");        
        Print ("deal = " +IntegerToString (result.deal) + "; ");
        Print ("order = " +IntegerToString (result.order) + "; "); 
        Print ("volume = " +DoubleToString (result.volume) + "; ");  
        Print ("price = " +DoubleToString (result.price) + "; ");

retcode, ordine e volume sono stampati, ma deal e prezzo sono sempre degli zeri.
Per favore, consigliatemi cosa sto facendo di sbagliato e come ottenere l'accesso (almeno, stamparlo prima) al contenuto della struttura dei risultati?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2018.10.29
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...