메타 트레이더 5 모든 통화 쌍에서 작동하지 않는 고문은 한 명도 없습니다. - 페이지 6

 
데모 달러
 
여기에서 로봇을 다운로드하려고 합니다 1이 아직 작동하지 않았습니다
 

달러로 전환, 전임 고문은 일하지 않는다, 광산 일

주문 실행 유형은 ORDER_FILLING_RETURN 이어야 합니다.

 
sandex :

달러로 전환, 전임 고문은 일하지 않고, 광산 일

주문 실행 유형은 ORDER_FILLING_RETURN 이어야 합니다.

r 이 유형을 입력할 위치)
 
dogmaone :
r 이 유형을 입력할 위치)
로봇이 작동하는 경우 표준 로봇이 작동하도록 필요한 값을 입력할 위치를 알 수 있습니다.
 

어드바이저의 논리는 확실히 책임이 있습니다(코드에서 모든 검사가 실패하거나 거래 모드 가 고려되지 않음).

"BCS5-Real" 서버에서 최소한 다음과 같은 간단한 코드는 쉽게 작동합니다.

 //+------------------------------------------------------------------+
//|                                                    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 :

어드바이저의 논리는 확실히 책임이 있습니다(코드에서 모든 검사가 실패하거나 거래 모드 가 고려되지 않음).

"BCS5-Real" 서버에서 최소한 다음과 같은 간단한 코드는 쉽게 작동합니다.

코드를 컴파일하고 싶을 때 알려주십시오. 추가 이벤트 핸들러를 생성하기 위해 (고문 템플릿) 어떤 핸들러를 선택해야 합니까?
 
Sergey Ponomarev :
코드를 컴파일하고 싶을 때 알려주십시오. 추가 이벤트 핸들러를 생성하기 위해 (고문 템플릿) 어떤 핸들러를 선택해야 합니까?
이것은 스크립트입니다. 이 스크립트는 이 거래 서버에서 자동 모드로 포지션을 여는 것이 여전히 가능한지 확인하기 위한 것입니다.
 
Karputov Vladimir :
이것은 스크립트입니다. 이 스크립트는 이 거래 서버에서 자동 모드로 포지션을 여는 것이 여전히 가능한지 확인하기 위한 것입니다.
알겠습니다... 즉, 내 서버에서 브로커에 다른 논리가 필요합니까?)))
 
Karputov Vladimir :
이것은 스크립트입니다. 이 스크립트는 이 거래 서버에서 자동 모드로 포지션을 여는 것이 여전히 가능한지 확인하기 위한 것입니다.
당신의 노력에 감사드립니다 :)