non un consigliere non funziona in Metatrader 5 qualsiasi coppia di valute - pagina 6

 
su dollari demo
 
Provando a scaricare i robot qui non 1 ha funzionato ancora
 

è passato ai dollari, gli EA interni non funzionano, i miei sì

il tipo di esecuzione dell'ordine dovrebbe essere ORDER_FILLING_RETURN

 
sandex:

è passato ai dollari, gli EA interni non funzionano, i miei sì

il tipo di esecuzione dell'ordine dovrebbe essere ORDER_FILLING_RETURN

r dove inserire questo tipo)
 
dogmaone:
r dove inserire questo tipo)
se i vostri robot funzionano, potete dirmi dove mettere il valore giusto per far funzionare anche i robot standard?
 

Sicuramente la colpa è della logica degli Expert Advisors (il codice non supera tutti i controlli o non tiene conto della modalità di trading).

Almeno questo semplice codice sul server "BCS5-Real" funziona facilmente:

//+------------------------------------------------------------------+
//|                                                    OrderSend.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| https://www.mql5.com/ru/articles/481                             |
//+------------------------------------------------------------------+

#include<Trade\Trade.mqh>
//--- объект для проведения торговых операций
CTrade  trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- зададим MagicNumber для идентификации своих ордеров
   int MagicNumber=123456;
   trade.SetExpertMagicNumber(MagicNumber);
//--- установим допустимое проскальзывание в пунктах при совершении покупки/продажи
   int deviation=10;
   trade.SetDeviationInPoints(deviation);
//--- режим заполнения ордера, нужно использовать тот режим, который разрешается сервером
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- режим логирования: лучше не вызывать этот метод вообще, класс сам выставит оптимальный режим
   trade.LogLevel(1);
//--- какую функцию использовать для торговли: true - OrderSendAsync(), false - OrderSend()
   trade.SetAsyncMode(true);
//---
/*//--- 1. пример покупки по текущему символу
   if(!trade.Buy(0.1))
     {
      //--- сообщим о неудаче
      Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }*/

/*//--- 2. пример покупки по указанному символу
   if(!trade.Buy(0.1,"GBPUSD"))
     {
      //--- сообщим о неудаче
      Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }*/
     
//Можно указать все параметры ордера: уровни Stop Loss/Take Profit,цена открытия и комментарий.
//--- 3. пример покупки по указанному символу символу с заданными SL и TP
   double volume=0.1;         // укажем объем торговой операции
   string symbol="GBPUSD";    // укажем символ, на котором проводится операция
   int    digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); // количество знаков после запятой
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);         // пункт
   double bid=SymbolInfoDouble(symbol,SYMBOL_BID);             // текущая цена для закрытия LONG
   double SL=bid-1000*point;                                   // ненормализованное значение SL
   SL=NormalizeDouble(SL,digits);                              // нормализуем Stop Loss
   double TP=bid+1000*point;                                   // ненормализованное значение TP
   TP=NormalizeDouble(TP,digits);                              // нормализуем Take Profit
//--- получим текущую цену открытия для LONG позиций
   double open_price=SymbolInfoDouble(symbol,SYMBOL_ASK);
   string comment=StringFormat("Buy %s %G lots at %s, SL=%s TP=%s",
                               symbol,volume,
                               DoubleToString(open_price,digits),
                               DoubleToString(SL,digits),
                               DoubleToString(TP,digits));
   if(!trade.Buy(volume,symbol,open_price,SL,TP,comment))
     {
      //--- сообщим о неудаче
      Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
     }
   else
     {
      Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
     }
  }
//+------------------------------------------------------------------+
 
Karputov Vladimir:

Sicuramente la colpa è della logica degli Expert Advisors (il codice non supera tutti i controlli o non tiene conto della modalità di trading).

Almeno questo semplice codice sul server "BCS5-Real" funziona facilmente:

Si prega di consigliare quando voglio compilare il tuo codice: vai a creare (modello EA) gestore di eventi aggiuntivi cosa scegliere?
 
Sergey Ponomarev:
Per favore consigliatemi quando voglio compilare il vostro codice: voglio creare (modello EA) un gestore di eventi addizionale quale scegliere?
Questo è uno script. Questo script serve a controllare che le posizioni possano essere aperte in modalità automatica su questo server di trading.
 
Karputov Vladimir:
Questo è uno script. Questo script serve a controllare che le posizioni possano ancora essere aperte in modalità automatica su questo server di trading.
Capisco... Quindi il server del mio broker ha bisogno di un'altra logica?)))
 
Karputov Vladimir:
Questo è uno script. Questo script serve a controllare che le posizioni possano ancora essere aperte in modalità automatica su questo server di trading.
Grazie per i vostri sforzi :)
Motivazione: