사용자 정의 기호. 오류, 버그, 질문, 제안. - 페이지 20

 

터미널을 다시 시작한 후 사용자 지정 기호 의 통화가 자동으로 변경되는 문제를 해결합니다.

 // Сервис корректирует валюты всех кастомных символов.
#property service

bool CorrectCurrency( const string Symb, const string Currency )
{  
   return ( SymbolInfoInteger (Symb, SYMBOL_CUSTOM ) && 
         CustomSymbolSetString (Symb, SYMBOL_CURRENCY_BASE , Currency) &&
         CustomSymbolSetString (Symb, SYMBOL_CURRENCY_MARGIN , Currency) &&
         CustomSymbolSetString (Symb, SYMBOL_CURRENCY_PROFIT , Currency));
}

void CorrectSymbols( void )
{
   const string Currency = AccountInfoString ( ACCOUNT_CURRENCY );
  
   for ( int i = SymbolsTotal ( false ) - 1 ; i >= 0 ; i--)
    CorrectCurrency( SymbolName (i, false ), Currency);
    
   return ;
}

void OnStart ()
{
  CorrectSymbols();
}
 
사용자 정의 기호 를 테스트할 때 틱의 가격이 해당 기호에 대해 모델링되었는지 여부를 알려주십시오.
 
Irek Gilmutdinov :
사용자 지정 기호를 테스트할 때 틱의 가격이 해당 기호에 대해 모델링되었는지 여부를 알려주십시오.

모델링해야 합니다. 더 빠르게 확인하세요.

 
네, 모델링 안 해서 질문드립니다.
 
내가 제기한 문제에 대해 말할 수 있는 사람이 있습니까?
 
jaffer wilson :
내가 제기한 문제에 대해 말할 수 있는 사람이 있습니까?

빌드 2145에서 테스트 했습니까?

 

틱 가격은 테스터에서 사용자 정의 기호로 모델링되지 않습니다.

MT5 빌드 2145.

사용자 지정 GBPCAD_s를 만들면 모든 필드가 GBPCAD에서 상속됩니다.

나는 그것에 분의 사용자 기록을 로드합니다.

다음으로 미화 100,000달러의 보증금, 공개 가격에 대한 백테스트입니다.

가장 단순한 Expert Advisor는 틱의 가격을 폴링하고 하나의 포지션을 엽니다.

 void OnTick ()
  {
//---
   static bool bOnce = true ;
   datetime dtTime[ 1 ];
   if (bOnce && CopyTime ( NULL , 0 , 0 , 1 , dtTime) == 1 && dtTime[ 0 ] % 86400 == 0 )
    {
     MqlTick stcTick;
     MqlTradeRequest stcRequest;
     MqlTradeResult   stcResult;
     ZeroMemory (stcRequest);
     ZeroMemory (stcResult);
     SymbolInfoTick ( _Symbol , stcTick);
    stcRequest.symbol = _Symbol ;
    stcRequest.type = ORDER_TYPE_BUY ;
    stcRequest.action = TRADE_ACTION_DEAL ;
    stcRequest.price = stcTick.ask;
    stcRequest.volume = 1 ;
     bool bSent = OrderSend (stcRequest, stcResult);
    
    bOnce = false ;
    }
  
   PrintFormat ( "tv=%.5f, USDCAD=%.5f" , SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE ), 1 / SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE ));
  }

틱 가격은 전혀 변하지 않으며 당시 USDCAD 환율과 일치하지 않습니다.

GBPUSD 및 USDCAD의 내역은 포지션을 개설한 후에만 로드되지만 이는 틱 가격에 영향을 미치지 않습니다.

스크린샷에서 틱 가격은 USDCAD = 1.3300에 해당하지만 = 1.0230이어야 합니다.


 
Irek Gilmutdinov :

틱 가격은 테스터에서 사용자 지정 기호로 모델링되지 않습니다.

MT5 빌드 2145.

사용자 지정 GBPCAD_s를 만들고 모든 필드는 GBPCAD에서 상속됩니다.

나는 그것에 분의 사용자 기록을 로드합니다.

다음으로 미화 100,000달러의 보증금, 공개 가격에 대한 백테스트입니다.

가장 단순한 Expert Advisor는 틱의 가격을 폴링하고 하나의 포지션을 엽니다.

틱 가격은 전혀 변하지 않으며 당시 USDCAD 환율과 일치하지 않습니다.

GBPUSD 및 USDCAD의 내역은 포지션을 개설한 후에만 로드되지만 이는 틱 가격에 영향을 미치지 않습니다.

스크린샷에서 틱 가격은 USDCAD = 1.3300에 해당하지만 = 1.0230이어야 합니다.


대부분의 경우 문제는 틱이 아니라 분 기록을 로드하는 데 있습니다 .
티키 다운로드!

 
진드기가 없으며 테스트는 시작 가격 으로 수행됩니다.
 
fxsaber :

터미널을 다시 시작한 후 사용자 지정 기호의 통화가 자동으로 변경되는 문제를 해결합니다.

단말이 서버에 연결될 때까지 확인하고 기다려야 하는 것 아닌가요? 연결이 안되어 입금통화 를 알 수 없는 경우가 있었던 걸로 기억합니다.

자체적으로 발생하는 마지막에 반환을 수행하는 이유는 무엇입니까? 무의미하고 절대 오지 않습니다.