自動生成のEAが通貨ペアでは動作するのですがGOLDだと動作しません。

 

始めにお伝えしておくと初心者です。

いくつかのサンプルを試していますが、自動生成のEA等CExpertを使用したサンプルが

USDJPY等の通貨ペアだと動作するのですが、「Invalid stops」とエラーが出てGOLDでは動作しません。

うまく設定できていないだけなのかも知れません。

CTradeで自分でコードを書いて試すとGOLDの取引も問題なく動作しています。


TPとBIDが100ポイント以上離れていないと同様の 「Invalid stops」エラーなるようです。

しかしどこで指定すればいいのか分かりません。EAでMAやMACDのサンプルを自動生成させてSignal_StopLevel等を変更してみましたが、

実際に注文を出しているTPやSLの値に変化は見られず 「Invalid stops」 でした。

サンプルを実行させる段階でつまづいてしまい、どなたかご教示頂けると幸いです。

 

6文字以下のシンボル名は除外されているのかも。

いずれにしてもこの説明だけでは誰にも分からない。
 
Nagisa Unada:

6文字以下のシンボル名は除外されているのかも。

いずれにしてもこの説明だけでは誰にも分からない。


//+------------------------------------------------------------------+
//|                                                   test_EA_MA.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalMA.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title         ="test_EA_MA"; // Document name
ulong                    Expert_MagicNumber   =31716;        //
bool                     Expert_EveryTick     =false;        //
//--- inputs for main signal
input int                Signal_ThresholdOpen =10;           // Signal threshold value to open [0...100]
input int                Signal_ThresholdClose=10;           // Signal threshold value to close [0...100]
input double             Signal_PriceLevel    =0.0;          // Price level to execute a deal
input double             Signal_StopLevel     =150.0;         // Stop Loss level (in points)
input double             Signal_TakeLevel     =150.0;         // Take Profit level (in points)
input int                Signal_Expiration    =4;            // Expiration of pending orders (in bars)
input int                Signal_MA_PeriodMA   =40;           // Moving Average(40,0,...) Period of averaging
input int                Signal_MA_Shift      =0;            // Moving Average(40,0,...) Time shift
input ENUM_MA_METHOD     Signal_MA_Method     =MODE_EMA;     // Moving Average(40,0,...) Method of averaging
input ENUM_APPLIED_PRICE Signal_MA_Applied    =PRICE_MEDIAN; // Moving Average(40,0,...) Prices series
input double             Signal_MA_Weight     =1.0;          // Moving Average(40,0,...) Weight [0...1.0]
//--- inputs for money
input double             Money_FixLot_Percent =10.0;         // Percent
input double             Money_FixLot_Lots    =0.1;          // Fixed volume
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Initializing expert
   if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
     {
      //--- failed
      printf(__FUNCTION__+": error initializing expert");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//--- Creating signal
   CExpertSignal *signal=new CExpertSignal;
   if(signal==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating signal");
      ExtExpert.Deinit();
      return(INIT_FAILED);
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);

返答ありがとうございます。
いろいろ至らずで申し訳ありません。
その後別のサンプルを使って調べて、私の使っているトレード会社でのGOLD取引はStopLevel,TakeLevelともに100ポイント以上離れている必要がある事まで分かりました。

なので自動生成されたEAのソースでSignal_StopLevel,Signal_TakeLevelを最初50だったものを150にしてみたのですが、どうもブレークポイントをsignal.StopLevel(),signal.TakeLevel()の位置にしかけてパラメータを確認すると値が50のままでした。何か私がパラメータの指定の仕方を間違っているように思うのですが、やり方が分かりません。

ご教示頂ければ幸いです。

理由: