カスタムシンボル。エラー、バグ、質問、提案。 - ページ 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 USDの入金と建値でバックテストをしています。

単純なExpert Advisorが1ティックの価格を照会し、1つのポジションを開く。

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 USDの入金と建値でバックテストをしています。

単純なExpert Advisorが1ティックの価格を照会し、1つのポジションを開く。

ティック価格は全く変化せず、その時点のUSDCADレートと一致しません。

GBPUSDとUSDCADの履歴はポジションを開いた後にのみ読み込まれますが、ティック価格は影響を受けません。

スクリーンショットでは、ティック価格はUSDCAD = 1.3300に対応しますが、それは= 1.0230であるべきです。


刻みではなく、分単位の履歴をダウンロードして いる可能性が高いです。
ティックを読み込む!

 
刻みはなく、テストは始値で 行われる。
 
fxsaber:

ターミナル再起動後にカスタムシンボルの通貨が自動的に変更される問題を解決しました。

端末がサーバーに接続するのを確認し、待つ必要はないのでしょうか?接続しないと入金通貨が わからないというケースもあったと記憶しています。

なぜ、勝手にそうなるようなリターンを最後に作るのか?無意味で不快なんです。