MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 195

 
 

이것은....?

   const bool TradeTime = ( TimeCurrent () % ( 24 * 60 * 60 ) < D'1970.01.01 23:50' ); // exclude swaps
  
   if (TradeTime && (IntAsk - IntBid < Limit))
그리고 내?
 
Renat Akhtyamov :

이것은 그....

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MT4-테스터 대 MT5-테스터

fxsaber , 2017.05.08 11:28

나는 논쟁하지 않을 것이다. MQL4에 익숙한 포럼 회원들에게 이 짧은 소스를 보고 Renat이 의미하는 바를 설명하도록 요청합니다.

내가 틀릴 수도 있지만 MT4의 역사 작업이 어디로 가고 있는지 알 수 없습니다. 도와주세요.
 
fxsaber :
70년까지 주문을 돌리는 이유는 무엇입니까?
 
Renat Akhtyamov :

이 확인란의 상태를 확인하는 기능을 알려주시겠습니까?

확인. 일단 우리가 침묵하면 - 문서에서와 같이 수행됩니다.

Пример проверки:

if (! TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED )) 
   Alert ( "Проверьте в настройках терминала разрешение на автоматическую торговлю!" );

 
Проверка разрешения на торговлю для данного запущенного эксперта/скрипта

При запуске программы можно разрешить или запретить автоматическую торговлю конкретно для нее. Для этого есть отдельная специальная настройка в свойствах программы.

MQL_TRADE_ALLOWED

Пример проверки:

   if (! TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED ))
       Alert ( "Проверьте в настройках терминала разрешение на автоматическую торговлю!" );
   else
     {
       if (! MQLInfoInteger ( MQL_TRADE_ALLOWED ))
         Alert ( "Автоматическая торговля запрещена в свойствах программы для " , __FILE__ );
     }

 
Проверка разрешения на торговлю любым экспертам/скриптам для данного счета

Запрет на автоматическую торговлю может быть установлен на стороне торгового сервера. Пример проверки такой ситуации:

   if (! AccountInfoInteger ( ACCOUNT_TRADE_EXPERT ))
       Alert ( "Автоматическая торговля запрещена для счета " , AccountInfoInteger ( ACCOUNT_LOGIN ),
       " на стороне торгового сервера" );

Если для торгового счета запрещена автоматическая торговля, то торговые операции из экспертов/скриптов выполняться не будут.
Проверка разрешения торговли для данного счета

Возможны случаи, когда для конкретного торгового счета запрещены любые торговые операции – нельзя торговать ни вручную, ни с помощью экспертов. Пример проверки ситуации, когда к торговому счету подключились с помощью инвесторского пароля:

   if (! AccountInfoInteger ( ACCOUNT_TRADE_ALLOWED ))
       Comment ( "Торговля запрещена для счета " , AccountInfoInteger ( ACCOUNT_LOGIN ),
             ".\n Возможно, подключение к торговому счету произведено по инвест паролю." ,
             "\n Проверьте журнал терминала, есть ли там такая запись:" ,
             "\n\'" , AccountInfoInteger ( ACCOUNT_LOGIN ), "\': trading has been disabled - investor mode." );

몇 분 전에는 모든 것이 정상이었지만 어떤 이유로 이 특정 확인란이 적시에 비활성화된 것으로 나타났습니다!

따라서 모든 틱 에 전체 체크를 적용하는 것이 좋습니다 !!!

 

열거 코드를 도와달라고 요청합니다. 범위가 있는 변수가 있다고 가정해 보겠습니다. "A"는 2에서 6까지, "B"는 1에서 3까지, "C"는 0에서 1은 1단계로, "D"는 16~48단계로 4단계로 구성됩니다. 매개변수 검색을 구성해야 하며 조합 변형이 정렬됩니다(외부 변수 - 모든 조합에 대한 액세스 제공 ). 이러한 메커니즘을 올바르게 구현하는 방법은 무엇입니까?

 
-Aleks- :

열거 코드를 도와달라고 요청합니다. 범위가 있는 변수가 있다고 가정해 보겠습니다. "A"는 2에서 6까지, "B"는 1에서 3까지, "C"는 0에서 1은 1단계로, "D"는 16~48단계로 4단계로 구성됩니다. 매개변수 검색을 구성해야 하며 조합 변형이 정렬됩니다(외부 변수 - 모든 조합에 대한 액세스 제공 ). 이러한 메커니즘을 올바르게 구현하는 방법은 무엇입니까?


작은 스크립트

//+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N=162;  //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for (int n=0;n<N;n++)
   {
      int tmp=n;
      int a=MathMod(tmp,3);
      tmp=(tmp-a)/3;
      int b=MathMod(tmp,3);
      tmp=(tmp-b)/3;
      int c=MathMod(tmp,2);
      tmp=(tmp-c)/2;
      int d=tmp;
   
      Print("N=",n,"; A=", 2+2*a, "; B=", b+1,"; C=",c,"; D=", 16+4*d);
   }
  }
//+------------------------------------------------------------------+

 
Victor Nikolaev :


작은 스크립트

이 스크립트는 터미널을 정지시킨 후 Windows에서 종료합니다.

 
-Aleks- :

이 스크립트는 터미널을 정지시킨 후 Windows에서 종료합니다.


그래서 누군가는 운이 좋지 않습니다. 다시. 이것은 고문이나 지표가 아닌 스크립트입니다.
 
Victor Nikolaev :

작은 스크립트

완전히 불필요한 줄을 제거하면 두 배 더 작아질 수 있습니다.

왜 많은 사람들이 포럼의 소스 코드에 헤더, 주석의 다양한 구성, 로고 유형 등을 게시합니까?