エキスパート: Multi Arbitration 1.1xx - ページ 2

 

こんにちは、

ウラジミールさん、迅速なご回答ありがとうございます!


ExtArrSymbols関数はライブ口座(MetaQuotesデモ口座 以外)で実行するとボットがエラーになることがわかりました。なぜエラーになるのか調べてみました(返信が遅くなってすみません!)。トラブルシューティングの際、そのパラメータを削除すると、ボットは「実行」されますが、シンボル2の情報を取得しないことがわかりました。これではトレードができないので、目的が達成できません。しかし、私はそれを絞り込むことができました。


このようなボットに多大な労力を費やしてくれてありがとう。正直言って、このボットは素晴らしく、ライブ口座で試してみたいです!

以下はジャーナルログの写真です。


編集:ボットは実行後すぐにシャットダウンします。


またご連絡をお待ちしております!

Documentation on MQL5: Constants, Enumerations and Structures / Environment State / Account Properties
Documentation on MQL5: Constants, Enumerations and Structures / Environment State / Account Properties
  • www.mql5.com
, then each symbol positions will be closed in the same order, in which they are opened, starting with the oldest one. In case of an attempt to close positions in a different order, the trader will receive an appropriate error. There are several types of accounts that can be opened on a trade server. The type of account on which an MQL5 program...
ファイル:
 
SaltySpade :

こんにちは、

ウラジミール、迅速な返信をありがとう!


ExtArrSymbols関数はライブ口座(MetaQuotesデモ口座 以外)で実行するとボットがエラーになることがわかりました。なぜエラーになるのか調べてみました(返信が遅くなってすみません!)。トラブルシューティングの際、そのパラメータを削除すると、ボットは「実行」されますが、シンボル2の情報を取得しないことがわかりました。これではトレードができないので、目的が達成できません。しかし、私はあなたの時間を節約するために、それを絞り込むことができました。


このようなボットに多大な労力を費やしてくれてありがとう。正直言って、このボットは素晴らしく、ライブ口座でテストしてみたいです!

以下は、ジャーナルログの写真です。


編集:ボットは実行後すぐにシャットダウンします。


またご連絡をお待ちしております!

1.ログファイルは画像として添付する必要はありません!ログファイルは「ログ」タブと「エキスパート」タブから取り出し、メッセージに添付してください。つまり、NotePadでログファイルを開くことができなければなりません。

2.2.あなたの画像を読んでください - エラーの理由はそこに印刷されています - あなたは存在しない取引シンボルを指定しています。

 

申し訳ありません!


セカンダリー通貨としてEUR/GBP (11)を使用しています。他の通貨も試してみましたが、すべて同じエラーで失敗しました。


これがジャーナルログです:


2020.08.06 04:15:47.210 MetaTester 5 started on 127.0.0.1:3000
2020.08.06 04:15:47.215 initialization finished
2020.08.06 04:15:47.304 login (build 2568)
2020.08.06 04:15:47.320 4372 bytes of account info loaded
2020.08.06 04:15:47.320 1482 bytes of tester parameters loaded
2020.08.06 04:15:47.320 2236 bytes of input parameters loaded
2020.08.06 04:15:47.321 1338 bytes of symbols list loaded (194 symbols)
2020.08.06 04:15:47.321 expert file added: Experts\EURGBP1.ex5. 92553 bytes loaded
2020.08.06 04:15:47.335 11262 Mb available, 140 blocks set for ticks generating
2020.08.06 04:15:47.335 calculate profit in pips, initial deposit 3000, leverage 1:100
2020.08.06 04:15:47.339 successfully initialized
2020.08.06 04:15:47.339 94 Kb of total initialization data received
2020.08.06 04:15:47.339 Intel Core i7-10510 U  @ 1.80 GHz, 16182 MB
2020.08.06 04:15:47.654 EURGBP.: symbol to be synchronized
2020.08.06 04:15:47.654 EURGBP.: symbol synchronized, 3800 bytes of symbol info received
2020.08.06 04:15:47.657 EURGBP.: history synchronization started
2020.08.06 04:15:47.659 EURGBP.: load 29 bytes of history data to synchronize in 0:00:00.001
2020.08.06 04:15:47.659 EURGBP.: history synchronized from 2015.07.14 to 2020.08.04
2020.08.06 04:15:47.662 EURGBP.: ticks synchronization started
2020.08.06 04:15:47.663 EURGBP.: load 36 bytes of tick data to synchronize in 0:00:00.000
2020.08.06 04:15:47.663 EURGBP.: history ticks synchronized from 2018.01.28 to 2020.08.03
2020.08.06 04:15:47.665 EURGBP.,M1: history cache allocated for 774969 bars and contains 455 bars from 2017.01.02 00:00 to 2018.07.13 00:00
2020.08.06 04:15:47.665 EURGBP.,M1: history begins from 2017.01.02 00:00
2020.08.06 04:15:47.679 EURGBP.,M1 (BitForex-MetaTrader5): generating based on real ticks
2020.08.06 04:15:47.679 testing with execution delay 127 milliseconds
2020.08.06 04:15:47.679 EURGBP.,M1: testing of Experts\EURGBP1.ex5 from 2018.07.14 00:00 to 2020.08.04 00:00 started with inputs:
2020.08.06 04:15:47.679   InpTimeFrame=15
2020.08.06 04:15:47.679   InpSymbolTwo=11
2020.08.06 04:15:47.679   InpProfitFoClose=100
2020.08.06 04:15:47.679   m_magic=130108500
2020.08.06 04:15:47.712 2018.07.14 00:00:00   CSymbolInfo::CheckMarketWatch: Unknown symbol 'EURGBP'
2020.08.06 04:15:47.712 tester stopped because OnInit reports incorrect input parameters
2020.08.06 04:15:47.712 log file "C:\Users\zackr\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\logs\20200806.log" written
2020.08.06 04:15:47.712 test Experts\EURGBP1.ex5 on EURGBP.,M1 thread finished
2020.08.06 04:15:47.732 prepare for shutdown
Documentation on MQL5: Trade Functions / OrderCalcProfit
Documentation on MQL5: Trade Functions / OrderCalcProfit
  • www.mql5.com
The function calculates the profit for the current account, in the current market conditions, based on the parameters passed. The function is used for pre-evaluation of the result of a trade operation. The value is returned in the account currency. [out]  The variable, to which the calculated value of the profit will be written in case the...
 

Expert Advisor は、入力パラメータに 誤りがある ことを通知します:

2020.08.06 04:15:47.679   m_magic=130108500
2020.08.06 04:15:47.712 2018.07.14 00:00:00   CSymbolInfo::CheckMarketWatch: Unknown symbol 'EURGBP'
2020.08.06 04:15:47.712 tester stopped because OnInit reports incorrect input parameters
2020.08.06 04:15:47.712 log file "C:\Users\zackr\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\logs\20200806.log" written
2020.08.06 04:15:47.712 test Experts\EURGBP1.ex5 on EURGBP.,M1 thread finished
2020.08.06 04:15:47.732 prepare for shutdown
 
//+------------------------------------------------------------------+
//|マルチ調停 1.1xx.mq5
//|著作権 © 2017, ウラジーミル・カルプトフ
//|http://wmua.ru/slesar/|( 英語
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version "1.104"
#property description "Run ONLY ON PERIOD_M1"
#property description "New strategy (1.1xx):"
#property description "https://www.mql5.com/en/forum/189685/page24#comment_5420669"
#property description "For \"BUY\": the next position \"BUY\" can be opened below the lowest \"BUY\""
#property description "For \"SELL\": the next position \"SELL\" can be opened above the highest \"SELL\""
#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>  
#include <Trade\AccountInfo.mqh>
CPositionInfo  m_position;                   // トレード・ポジション・オブジェクト
CTrade         m_trade;                      // 取引オブジェクト
CSymbolInfo    m_symbol_one;                 // シンボル情報オブジェクト
CSymbolInfo    m_symbol_two;                 // シンボル情報オブジェクト
CAccountInfo   m_account;                    // アカウント情報ラッパー
//--- 入力パラメータ
input ENUM_TIMEFRAMES InpTimeFrame=PERIOD_M15;// 時間枠
input uchar    InpSymbolTwo      = 
0 ;        // 0から19まで
input double   InpProfitFoClose  = 100;      // プロフィット・フォ・クローズ
input ulong    m_magic           = 130108500;// マジックナンバー
ulong          m_slippage        = 30;       // スリップ
string         ExtArrSymbols[20]=
  {
   "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",
   "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",
   "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",
   "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"
  };
//+------------------------------------------------------------------+
//| エキスパート初期化関数|
//+------------------------------------------------------------------+
int OnInit()
  {
   if(Period()!=PERIOD_M1)
     {
      return(INIT_PARAMETERS_INCORRECT);
     }
//---
   if(!m_symbol_one.Name(Symbol())) // シンボル名を設定する
      return(INIT_PARAMETERS_INCORRECT);
   if(!m_symbol_two.Name(ExtArrSymbols[InpSymbolTwo])) // シンボル名を設定する
      return(INIT_PARAMETERS_INCORRECT);
   Print("Symbol two: ",m_symbol_two.Name());

   RefreshRates(m_symbol_one);
   RefreshRates(m_symbol_two);

   m_symbol_one.Refresh();
   m_symbol_two.Refresh();
//---
   m_trade.SetExpertMagicNumber(m_magic);
//---
   if(IsFillingTypeAllowed(m_symbol_one.Name(),SYMBOL_FILLING_FOK))
      m_trade.SetTypeFilling(ORDER_FILLING_FOK);
   else if(IsFillingTypeAllowed(m_symbol_one.Name(),SYMBOL_FILLING_IOC))
      m_trade.SetTypeFilling(ORDER_FILLING_IOC);
   else
      m_trade.SetTypeFilling(ORDER_FILLING_RETURN);
//---
   m_trade.SetDeviationInPoints(m_slippage);
//---
   m_trade.SetAsyncMode(true);
//---
   bool result_one=false,result_two=false;
   while(!result_one)
      result_one=m_trade.Buy(m_symbol_one.LotsMin(),m_symbol_one.Name());
   while(!result_two)
      result_two=m_trade.Buy(m_symbol_two.LotsMin(),m_symbol_two.Name());
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
|エキスパート初期化関数|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| エキスパート・ティック機能|
//+------------------------------------------------------------------+
void OnTick()
  {
//--- 新しいバーが誕生した時だけ働く。
   static datetime prevtime=0;
   datetime time_0=iTime(m_symbol_one.Name(),InpTimeFrame,0);
   if(time_0==prevtime)
      return;
   prevtime=time_0;

   if(!IsTradeAllowed())
     {
      prevtime=iTime(m_symbol_one.Name(),InpTimeFrame,0);
      return;
     }

//--- 最も高い "SELL "と最も低い "BUY "を検索する。
   ulong    symbol_TICKET_buy_one=0;
   ulong    symbol_TICKET_sell_one=0;
   ulong    symbol_TICKET_buy_two=0;
   ulong    symbol_TICKET_sell_two=0;

   double   price_lowest_buy_one=DBL_MAX;
   double   price_lowest_buy_two=DBL_MAX;
   double   price_highest_sell_one=DBL_MIN;
   double   price_highest_sell_two=DBL_MIN;

   int count_buys_one=0,count_sells_one=0,count_buys_two=0,count_sells_two=0;

   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // プロパティにさらにアクセスするために、インデックスによって位置を選択する。
         if(m_position.Magic()==m_magic)
            if(m_position.Symbol()==m_symbol_one.Name() || m_position.Symbol()==m_symbol_two.Name())
              {
               if(m_position.PositionType()==POSITION_TYPE_BUY)
                 {
                  if(m_position.Symbol()==m_symbol_one.Name())
                    {
                     symbol_TICKET_buy_one=m_position.Ticket();
                     if(m_position.PriceOpen()<price_lowest_buy_one)
                        price_lowest_buy_one=m_position.PriceOpen();
                     count_buys_one++;
                    }
                  else if(m_position.Symbol()==m_symbol_two.Name())
                    {
                     symbol_TICKET_buy_two=m_position.Ticket();
                     if(m_position.PriceOpen()<price_lowest_buy_two)
                        price_lowest_buy_two=m_position.PriceOpen();
                     count_buys_two++;
                    }
                 }
               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  if(m_position.Symbol()==m_symbol_one.Name())
                    {
                     symbol_TICKET_sell_one=m_position.Ticket();
                     if(m_position.PriceOpen()>price_highest_sell_one)
                        price_highest_sell_one=m_position.PriceOpen();
                     count_sells_one++;
                    }
                  else if(m_position.Symbol()==m_symbol_two.Name())
                    {
                     symbol_TICKET_sell_two=m_position.Ticket();
                     if(m_position.PriceOpen()>price_highest_sell_two)
                        price_highest_sell_two=m_position.PriceOpen();
                     count_sells_two++;
                    }
                 }
              }
   if(symbol_TICKET_buy_one!=0 && symbol_TICKET_sell_one!=0)
      if(count_buys_one>1 && count_sells_one>1)
         m_trade.PositionCloseBy(symbol_TICKET_buy_one,symbol_TICKET_sell_one);
   if(symbol_TICKET_buy_two!=0 && symbol_TICKET_sell_two!=0)
      if(count_buys_two>1 && count_sells_two>1)
         m_trade.PositionCloseBy(symbol_TICKET_buy_two,symbol_TICKET_sell_two);

   if(!RefreshRates(m_symbol_one) || !RefreshRates(m_symbol_two))
      return;

   CalculatePositions(count_buys_one,count_sells_one,count_buys_two,count_sells_two);
   Comment("count buys ",m_symbol_one.Name(),": ",count_buys_one,"\n",
           "count sells ",m_symbol_one.Name(),": ",count_sells_one,"\n",
           "count buys ",m_symbol_two.Name(),": ",count_buys_two,"\n",
           "count sells ",m_symbol_two.Name(),": ",count_sells_two);
//---
   int limit=m_account.LimitOrders();
   if(!RefreshRates(m_symbol_one) || !RefreshRates(m_symbol_two))
      return;
   if(count_buys_one+count_sells_one+count_buys_two+count_sells_two<limit-15)
     {
      if(m_symbol_one.Ask()<price_lowest_buy_one) // トレンド・ダウン
         m_trade.Buy(m_symbol_one.LotsMin(),m_symbol_one.Name());
      else if(m_symbol_one.Bid()>price_highest_sell_one) // 上昇トレンド
      m_trade.Sell(m_symbol_one.LotsMin(),m_symbol_one.Name());
      else if(count_buys_one==0 && count_sells_one==0)
         m_trade.Buy(m_symbol_one.LotsMin(),m_symbol_one.Name());

      if(m_symbol_two.Ask()<price_lowest_buy_two) // トレンド・ダウン
         m_trade.Buy(m_symbol_two.LotsMin(),m_symbol_two.Name());
      else if(m_symbol_two.Bid()>price_highest_sell_two) // 上昇トレンド
      m_trade.Sell(m_symbol_two.LotsMin(),m_symbol_two.Name());
      else if(count_buys_two==0 && count_sells_two==0)
         m_trade.Buy(m_symbol_two.LotsMin(),m_symbol_two.Name());
     }
   else
     {
      if(m_account.Profit()>0.0)
         CloseAllPositions();
     }

//---
   CalculatePositions(count_buys_one,count_sells_one,count_buys_two,count_sells_two);
   Comment("count buys ",m_symbol_one.Name(),": ",count_buys_one,"\n",
           "count sells ",m_symbol_one.Name(),": ",count_sells_one,"\n",
           "count buys ",m_symbol_two.Name(),": ",count_buys_two,"\n",
           "count sells ",m_symbol_two.Name(),": ",count_sells_two);
   if(m_account.Equity()-m_account.Balance()>InpProfitFoClose)
      CloseAllPositions();
  }
//+------------------------------------------------------------------+
//| シンボルのクォートデータを更新する。|
//+------------------------------------------------------------------+
bool RefreshRates(CSymbolInfo &m_symbol)
  {
//--- リフレッシュ・レート
   if(!m_symbol.RefreshRates())
      return(false);
//--- "ゼロ "の戻り値からの保護
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+
//| 指定された充填モードが許可されているかどうかをチェックする。
//+------------------------------------------------------------------+
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- 許容される充填モードを記述するプロパティの値を取得する。
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- fill_typeモードが許可されている場合、trueを返す
   return((filling & fill_type)==fill_type);
  }
//+------------------------------------------------------------------+
//| 取引許可に関する情報を取得する。
//+------------------------------------------------------------------+
bool IsTradeAllowed()
  {
   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
     {
      Alert("Check if automated trading is allowed in the terminal settings!");
      return(false);
     }
   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
     {
      Alert("Check if automated trading is allowed in the terminal settings!");
      return(false);
     }
   else
     {
      if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
        {
         Alert("Automated trading is forbidden in the program settings for ",__FILE__);
         return(false);
        }
     }
   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
     {
      Alert("Automated trading is forbidden for the account ",AccountInfoInteger(ACCOUNT_LOGIN),
            " at the trade server side");
      return(false);
     }
   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
     {
      Comment("Trading is forbidden for the account ",AccountInfoInteger(ACCOUNT_LOGIN),
              ".\n Perhaps an investor password has been used to connect to the trading account.",
              "\n Check the terminal journal for the following entry:",
              "\n\'",AccountInfoInteger(ACCOUNT_LOGIN),"\': trading has been disabled - investor mode.");
      return(false);
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+
//| 利益ポジションの計算 買いと売り|
//+------------------------------------------------------------------+
void CalculateProfitPositions(double &profit_buys_one,double &profit_sells_one,
                              double &profit_buys_two,double &profit_sells_two)
  {
   profit_buys_one   = 0.0;
   profit_sells_one  = 0.0;
   profit_buys_two   = 0.0;
   profit_sells_two  = 0.0;

   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // プロパティにさらにアクセスするために、インデックスによって位置を選択する。
         if(m_position.Magic()==m_magic)
            if(m_position.Symbol()==m_symbol_one.Name() || m_position.Symbol()==m_symbol_two.Name())
              {
               if(m_position.PositionType()==POSITION_TYPE_BUY)
                 {
                  if(m_position.Symbol()==m_symbol_one.Name())
                     profit_buys_one+=m_position.Profit();
                  else if(m_position.Symbol()==m_symbol_two.Name())
                     profit_buys_two+=m_position.Profit();
                 }

               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  if(m_position.Symbol()==m_symbol_one.Name())
                     profit_sells_one+=m_position.Profit();
                  else if(m_position.Symbol()==m_symbol_two.Name())
                     profit_sells_two+=m_position.Profit();
                 }
              }
//---
   return;
  }
//+------------------------------------------------------------------+
//| 全ポジションをクローズ|
//+------------------------------------------------------------------+
void CloseAllPositions()
  {
//m_trade.SetAsyncMode(true);
   for(int i=PositionsTotal()-1;i>=0;i--) // 現在のポジションの数を返す
      if(m_position.SelectByIndex(i))     // プロパティにさらにアクセスするために、インデックスによって位置を選択する。
         if(m_position.Magic()==m_magic)
            if(m_position.Symbol()==m_symbol_one.Name() || m_position.Symbol()==m_symbol_two.Name())
               m_trade.PositionClose(m_position.Ticket()); // 指定したシンボルでポジションを閉じる
//m_trade.SetAsyncMode(false);
  }
//+------------------------------------------------------------------+
//| ポジションの計算 買いと売り|
//+------------------------------------------------------------------+
void CalculatePositions(int  &count_buys_one,int  &count_sells_one,int  &count_buys_two,int  &count_sells_two)
  {
   count_buys_one = 0;
   count_sells_one= 0;
   count_buys_two = 0;
   count_sells_two= 0;

   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // プロパティにさらにアクセスするために、インデックスによって位置を選択する。
         if(m_position.Magic()==m_magic)
            if(m_position.Symbol()==m_symbol_one.Name() || m_position.Symbol()==m_symbol_two.Name())
              {
               if(m_position.PositionType()==POSITION_TYPE_BUY)
                 {
                  if(m_position.Symbol()==m_symbol_one.Name())
                     count_buys_one++;
                  else if(m_position.Symbol()==m_symbol_two.Name())
                     count_buys_two++;
                 }

               if(m_position.PositionType()==POSITION_TYPE_SELL)
                 {
                  if(m_position.Symbol()==m_symbol_one.Name())
                     count_sells_one++;
                  else if(m_position.Symbol()==m_symbol_two.Name())
                     count_sells_two++;
                 }
              }
//---
   return;
  }
//+------------------------------------------------------------------+

2番目のシンボルを見ると、基本的なEURUSDに 変更しましたが、同じエラーが発生します。

これはなぜでしょうか?

2020.08.06 07:22:48.328 MetaTester 5 started on 127.0.0.1:3000
2020.08.06 07:22:48.332 initialization finished
2020.08.06 07:22:48.440 login (build 2568)
2020.08.06 07:22:48.452 4372 bytes of account info loaded
2020.08.06 07:22:48.452 1482 bytes of tester parameters loaded
2020.08.06 07:22:48.452 2236 bytes of input parameters loaded
2020.08.06 07:22:48.452 1338 bytes of symbols list loaded (194 symbols)
2020.08.06 07:22:48.453 expert file added: Experts\MultiArbi10.ex5. 91493 bytes loaded
2020.08.06 07:22:48.465 11760 Mb available, 146 blocks set for ticks generating
2020.08.06 07:22:48.465 calculate profit in pips, initial deposit 3000, leverage 1:100
2020.08.06 07:22:48.467 successfully initialized
2020.08.06 07:22:48.467 93 Kb of total initialization data received
2020.08.06 07:22:48.467 Intel Core i7-10510 U  @ 1.80 GHz, 16182 MB
2020.08.06 07:22:48.650 GBPUSD.: symbol to be synchronized
2020.08.06 07:22:48.653 GBPUSD.: symbol synchronized, 3800 bytes of symbol info received
2020.08.06 07:22:48.676 GBPUSD.: history synchronization started
2020.08.06 07:22:48.682 GBPUSD.: load 29 bytes of history data to synchronize in 0:00:00.001
2020.08.06 07:22:48.682 GBPUSD.: history synchronized from 2015.01.02 to 2020.08.04
2020.08.06 07:22:48.684 GBPUSD.: ticks synchronization started
2020.08.06 07:22:48.685 GBPUSD.: load 36 bytes of tick data to synchronize in 0:00:00.000
2020.08.06 07:22:48.685 GBPUSD.: history ticks synchronized from 2018.01.28 to 2020.08.03
2020.08.06 07:22:48.892 GBPUSD.,M1: history cache allocated for 1341147 bars and contains 567532 bars from 2017.01.01 22:01 to 2018.07.13 20:58
2020.08.06 07:22:48.892 GBPUSD.,M1: history begins from 2017.01.01 22:01
2020.08.06 07:22:48.917 GBPUSD.,M1 (BitForex-MetaTrader5): generating based on real ticks
2020.08.06 07:22:48.917 testing with execution delay 127 milliseconds
2020.08.06 07:22:48.917 GBPUSD.,M1: testing of Experts\MultiArbi10.ex5 from 2018.07.14 00:00 to 2020.08.04 00:00 started with inputs:
2020.08.06 07:22:48.917   InpTimeFrame=15
2020.08.06 07:22:48.917   InpSymbolTwo=0
2020.08.06 07:22:48.917   InpProfitFoClose=100
2020.08.06 07:22:48.917   m_magic=130108500
2020.08.06 07:22:48.947 2018.07.14 00:00:00   CSymbolInfo::CheckMarketWatch: Unknown symbol 'EURUSD'
2020.08.06 07:22:48.948 tester stopped because OnInit reports incorrect input parameters
2020.08.06 07:22:48.948 log file "C:\Users\zackr\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\logs\20200806.log" written
2020.08.06 07:22:48.948 test Experts\MultiArbi10.ex5 on GBPUSD.,M1 thread finished
2020.08.06 07:22:48.964 prepare for shutdown
 
SaltySpade :

2つ目のシンボルを見ると、基本的なEURUSDに変更しましたが、同じエラーが発生します。

これはなぜでしょうか?

答えは一つしかありません:あなたは'EURGBP'シンボルも'EURUSD'シンボルも持っていません。通常の取引サーバーで作業してください。

 

как это работает, у вас есть видео, показывающее, как его установить и как он выполняет операции?


どのように動作するのか、インストール方法と操作方法を紹介したビデオをお持ちですか?

 

こんにちは、

0~19の数字の意味を教えてください。

ありがとうございました。

 
バックテストでは 素晴らしい。本番でどうなるか見てみよう。