"ダミー "からの質問 - ページ 187

 
G001:
完全に疲れました。うまく開けない。

よろしくお願いします。どこが間違いなのか?

これを試してみてください。
MqlTradeRequest request={0};
MqlTradeResult result={0};
MqlTradeCheckResult check={0};
 
fyords:
こんな風に試してみてください。
ありがとうございます。
開くが、インジケータからの信号を正しく読み取れないだけである。
役に立ちましたか?
 
G001:
ありがとうございます。
開くが、インジケータからの信号を正しく読み取れないだけである。
これは役に立つのでしょうか?
ArraySetAsSeries(Bull,true);

OnInitで一度だけ行われる。

CopyBuffer(Indicator,1,0,3,Bull);
バッファー数を間違えてない?
 
fyords:

OnInitで一度だけ行われる。

バッファの数値は正しいですか?
そんなことはないだろう。インジケーターは前ページのとおりです。
 
G001:
開くが、インジケータからのシグナルを正しく読み取れない。

間違っているというのはどういうことですか?

インジケーターの値を 表示して確認することができます。"何が出るか?"

 
fyords:

間違っているというのはどういうことですか?

インジケーターの値を表示して確認することができます。"何が出るか?"

他のインジケータでEAを確認しましたが、動作しています。
もしかしたら、インジケーターに問題があるのでは?
このインジケータで最初のティックで開きます。

すみません、どこにプリントを追加 すればいいのかわかりません。

BUY_STOPの例、赤からグレーになる。

//+------------------------------------------------------------------+ 
//|                                                      MACDATR.mq5 | 
//|                                      Copyright © 2011, Svinozavr | 
//+------------------------------------------------------------------+ 
//---- Indicator settings
#property indicator_separate_window 
#property indicator_buffers 4 
#property indicator_plots   4
#property indicator_level1 +0.0005
#property indicator_level2 -0.0005
#property indicator_levelcolor DimGray
#define RESET 0
//-----
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 Gray
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
#property indicator_label1 "MACD"
//-----
#property indicator_type2 DRAW_HISTOGRAM
#property indicator_color2 Green
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
#property indicator_label2 "Bull"
//-----
#property indicator_type3 DRAW_HISTOGRAM
#property indicator_color3 Red
#property indicator_style3 STYLE_SOLID
#property indicator_width3 1
#property indicator_label3 "Bear"
//-----
#property indicator_type4 DRAW_LINE
#property indicator_color4 Olive
#property indicator_style4 STYLE_SOLID
#property indicator_width4 1
#property indicator_label4 "ATR"
//-----
//----- Indicator parameters
//+------------------------------------------------------------------+
input uint FastEMA      = 12;
input uint SlowEMA      = 26;
input uint SignalEMA = 9;
input int  ATRG         = 0;
input ENUM_APPLIED_PRICE AppliedPrice=PRICE_CLOSE;
//+------------------------------------------------------------------+
//-----
double ATRmin=0;
double kATR=1;
int min_rates_total;
int ATRHandle,MACDHandle;
double MACDBuffer[],ATRBuffer[],Bull[],Bear[];
//+------------------------------------------------------------------+    
//| MACD indicator initialization function                           | 
//+------------------------------------------------------------------+  
void OnInit()
{
//-----
  if(ATRG) min_rates_total=int(MathMax(FastEMA,SlowEMA)+ATRG);
  else min_rates_total=2*int(MathMax(FastEMA,SlowEMA));
//-----
  int ATR;
  if(!ATRG) ATR=int(SlowEMA); 
  else ATR=ATRG;
  ATRmin*=_Point;
//-----
  ATRHandle=iATR(NULL,0,ATR);
  if(ATRHandle==INVALID_HANDLE)Print(" Íå óäàëîñü ïîëó÷èòü õåíäë èíäèêàòîðà ATR");
//-----
  MACDHandle=iMACD(NULL,0,FastEMA,SlowEMA,SignalEMA,AppliedPrice);
  if(MACDHandle==INVALID_HANDLE)Print(" Íå óäàëîñü ïîëó÷èòü õåíäë èíäèêàòîðà MACD");
//-----
  SetIndexBuffer(0,MACDBuffer,INDICATOR_DATA);
  PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
  ArraySetAsSeries(MACDBuffer,true);
//-----
  SetIndexBuffer(1,Bull,INDICATOR_DATA);
  PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,min_rates_total);
  ArraySetAsSeries(Bull,true);
//-----
  SetIndexBuffer(2,Bear,INDICATOR_DATA);
  PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,min_rates_total);
  ArraySetAsSeries(Bear,true);
//-----
  SetIndexBuffer(3,ATRBuffer,INDICATOR_DATA);
  PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,min_rates_total);
  ArraySetAsSeries(ATRBuffer,true);
//-----
  string shortname;
  StringConcatenate(shortname,"MACDATR (",FastEMA,", ",SlowEMA,", ",SignalEMA,", ",EnumToString(AppliedPrice),")");
//-----
  IndicatorSetString(INDICATOR_SHORTNAME,shortname);
//-----
  IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//-----
}
//+------------------------------------------------------------------+  
//| MACD iteration function                                          | 
//+------------------------------------------------------------------+  
int OnCalculate(
                const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]
                )
  {
//----- Check for data
  if(rates_total<min_rates_total) return(0);
//-----
  int to_copy,limit,i;
  double atr,Atr[];
  datetime Time[1];
//-----
  if(prev_calculated>rates_total || prev_calculated<=0)
  {
    limit=rates_total-min_rates_total;
  }
  else limit=rates_total-prev_calculated;
//----- 
  ArraySetAsSeries(Atr,true);
//-----
  to_copy=limit+1;
//-----
  if(CopyBuffer(ATRHandle,0,0,to_copy,Atr)<=0) return(RESET);
  if(CopyBuffer(MACDHandle,MAIN_LINE,0,to_copy,MACDBuffer)<=0) return(RESET);
//-----
  for(i=limit; i>=0 && !IsStopped(); i--)
  {
    atr=kATR*Atr[i]; // ATR
    atr=MathMax(atr,ATRmin);
//-----
    if(MACDBuffer[i]>0) {ATRBuffer[i]=MACDBuffer[i]-atr;}
    if(MACDBuffer[i]<0) {ATRBuffer[i]=MACDBuffer[i]+atr;}
  }
//-----
  for(i=limit; i>=0 && !IsStopped(); i--)
  {
//-----
    Bear[i]=0;
    Bull[i]=0;
//-----
    if(MACDBuffer[i]>0 && MACDBuffer[i+1]<MACDBuffer[i] && ATRBuffer[i]>=0) {Bull[i]=MACDBuffer[i];}
    if(MACDBuffer[i]<0 && MACDBuffer[i+1]>MACDBuffer[i] && ATRBuffer[i]<=0) {Bear[i]=MACDBuffer[i];}
  }
//+------------------------------------------------------------------+
//----- Done
  return(rates_total);
}
//+------------------------------------------------------------------+

 
G001:
他のインジケータでEAをテストしたところ、動作しました。
インジケーターが問題なのでは?
このインジケータでは、最初のティックで開きます。

すみません、どこにプリントを追加すればいいのかわかりません。

BUY_STOPの例、赤からグレーになる。

問題は見つかっていません、すべてうまくいっています。189ページからコードを取りました。

 

プログラムプロパティに関する質問#property tester_file"" .

私はテストのために多くのファイルを私のEAに接続する必要があります、正確には3800です。

いくつかの商品について、今年の日次のオプション水準のみ。

その解決策とは?

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
Karlson: プログラムプロパティに関する質問#property tester_file"" .

テスト用に多くのファイルをEAに接続する必要がある、正確には3800個だ。いくつかの商品について、今年の日次オプションレベルのみ。

もしテストのためなら、これらのファイル内のすべての情報を変更不可(アーカイブ)にしなければならないことが判明した。1つは何百ものファイルのデータを1つのファイルにリセットする関数、もう1つはそのファイルをきちんと定義されたルールに従って読み込む関数です。その方法は試されましたか?
 
Yedelkin:
もしテストのためなら、これらのファイル内のすべての情報を変更不可(アーカイブ)にしておく必要があることが判明した。1つは何百ものファイルから1つのファイルにすべてのデータをリセットし、もう1つは明確に定義されたルールに従ってこのファイルを読み込むという2つの関数を書いてみる。その方法は試されましたか?
まだ試していませんが、1つのファイルにまとめるというアイデアは理解できます。 もしかしたら、開発者はオプションとして、フォルダから変更できないデータを接続する方法を示してくれるかもしれませんね。