오류, 버그, 질문 - 페이지 2447

 

최적화 중 전략 테스터 의 오류입니다.

" 테스터 에이전트 가 작업을 거부했습니다 "

예를 들어 계정 통화가 EUR인 경우

  • EURJPY 문제 없습니다
  • GBPJPY 오류


계정 통화가 USD인 경우

  • 문제 없습니다
  • USDJPY 문제 없습니다
  • EURAUD 오류


다른 통화 쌍이 코드에 사용될 때 나타납니다.

특히 내 예에서 - 이것은 동적 로트 계산의 사용입니다.

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   if (DynamicLot)
     {
       if ( SymbolInfoDouble (sym, SYMBOL_ASK )!= 0 )
        {
         if (Valdepo== "USD" || Valdepo== "USC" )
           {
             if ( StringSubstr (sym, 0 , 3 )== "USD" )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
             else if ( StringSubstr (sym, 3 , 3 )== "USD" )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/ SymbolInfoDouble (sym, SYMBOL_ASK )/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
             else
              {
               pr= SymbolInfoDouble ( StringSubstr (sym, 0 , 3 )+ "USD" +prefix, SYMBOL_ASK );
               if (pr!= 0 )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/pr/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
               else
                 {
                   double Margin= 0 ;
                   OrderCalcMargin ( ORDER_TYPE_BUY , Symbol (), 1 , SymbolInfoDouble ( Symbol (), SYMBOL_ASK ),Margin);
                   if (Margin!= 0 )Lot2=BalanceFreeMargin/Margin/ 100 *LotBalancePercent;
                 }
              }
           }
         else

         if (Valdepo== "EUR" || Valdepo== "EUC" )
           {
             if ( StringSubstr (sym, 0 , 3 )== "EUR" )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
             else
              {
               pr= SymbolInfoDouble ( "EUR" + StringSubstr (sym, 0 , 3 )+prefix, SYMBOL_BID );
               if (pr!= 0 )Lot2=BalanceFreeMargin*LotBalancePercent* AccountInfoInteger ( ACCOUNT_LEVERAGE )*pr/ 100 / SymbolInfoDouble (sym, SYMBOL_TRADE_CONTRACT_SIZE );
               else
                 {
                   double Margin= 0 ;
                   OrderCalcMargin ( ORDER_TYPE_BUY , Symbol (), 1 , SymbolInfoDouble ( Symbol (), SYMBOL_ASK ),Margin);
                   if (Margin!= 0 )Lot2=BalanceFreeMargin/Margin/ 100 *LotBalancePercent;
                 }
              }
           }



저것들. EA가 다른 통화의 가격을 요청할 때.

 
Nikolai Semko :

그렇다면 MQ에 대한 유능한 논거가 필요합니다.
무엇을 위한 것입니까? 이것이 mql의 기능을 어떻게 그리고 어떤 경우에 확장할 수 있습니까? 그리고 개인적인 변덕의 만족만이 아닙니다.

고문과 함께 일하기 위한 관리자를 작성한다고 가정해 보겠습니다. 이제 이름이 다른 두 개의 동일한 Expert Advisor가 동일한 것으로 인식될 수 없습니다.

예를 들어 Expert Advisor를 시작할 때 Expert Advisor와 해당 클론이 이전에 시작된 적이 있는지 확인해야 합니다.

글쎄요, 차트와 조언자가 많을 때 발생합니다. 그리고 실수로 무언가를 다시 시작합니다.

 

개발자 여러분, 표시기 막대의 현재 날짜를 버퍼에 복사할 때 주기적으로 오류가 발생하는 이유를 설명해 주십시오.

 2019.04 . 26 12 : 12 : 39.811 i-Regr4_05i (Si- 6.19 ,M1)        Failed to copy data from the handle_Regressor indicator, error code 4401
   datetime Arr[],time1;
   if ( CopyTime (symb, 0 , 0 , 1 ,Arr)<= 0 )
   {
   PrintFormat ( "Failed to copy data from the handle_Regressor indicator, error code %d" , GetLastError ());
   return ( 0 );
   }

겨울에는 그러한 오류가 없었습니다. 표시기는 한 달 동안 안정적으로 작동했으며 새 빌드에서 이것을 관찰하기 시작했습니다.

 
고맙습니다!
 
Mykhailo Ohorodniichuk :

pls가 문제를 해결하도록 도와주세요. 지금이 아닌 일반 문자를 전송하는 방법은 무엇입니까?

chcp 명령에 대한 Google

chcp 1251 - Windows-1251

chcp 65001 - UTF-8

...

 
fxsaber :

고문과 함께 일하기 위한 관리자를 작성한다고 가정해 보겠습니다. 이제 이름이 다른 두 개의 동일한 Expert Advisor가 동일한 것으로 인식될 수 없습니다.

예를 들어 Expert Advisor를 시작할 때 Expert Advisor와 해당 클론이 이전에 시작된 적이 있는지 확인해야 합니다.

글쎄요, 차트와 조언자가 많을 때 발생합니다. 그리고 실수로 무언가를 다시 시작합니다.

알았습니다...

그러나 나는 여전히 다음 공식을 따르는 경향이 있습니다: 거래 계정당 하나 이상의 전문가 고문. 더 합리적입니다. 결합하려는 전략이 여러 개 있더라도 이 역시 한 명의 전문가 자문가의 틀 내에서 이루어져야 합니다. 그러면 고문과 함께 일할 관리자가 필요하지 않습니다. 또한, 다른 해시가 개발자의 기본 내부 해시라 할지라도 Expert Advisor가 다르다는 것을 보장하지는 않습니다.

그리고 경고를 시작하고 충돌 가능성을 피하기 위해 새 고문이 작동하도록 허용하기 위해 이 계정에서 다른 고문이 실수로 실행되었는지 여부를 고문을 시작할 때 확인해야 하는 경우 정기적으로 쉽게 해결할 수 있습니다. 여기에서는 기능 및 동일성 검사가 필요하지 않습니다.

 
Nikolai Semko :

알았습니다...

그러나 나는 여전히 다음 공식에 기대어

그래서 당신의 개인적인 취향은 무엇입니까? 우리는 일반적으로 MT5에 대해 이야기하고 있습니다.
 
fxsaber :
그래서 당신의 개인적인 취향은 무엇입니까? 우리는 일반적으로 MT5에 대해 이야기하고 있습니다.
나는 당신 외에 고문과 함께 일할 관리자를 만드는 사람이 생길지 매우 의심합니다. ))
 
Nikolai Semko :
나는 당신 외에 고문과 함께 일할 관리자를 만드는 사람이 생길지 매우 의심합니다. ))

왜요? 매우 정확하고 편리한 것입니다.

프로필을 사용해야 하지만 많은 제한 사항이 있습니다.

 
Andrey Khatimlianskii :

왜요? 매우 정확하고 편리한 것입니다.

프로필을 사용해야 하지만 많은 제한 사항이 있습니다.

Andrey, 프로필에 대해 이해하지 못했습니다.