MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 991

 
LuckyTrader:
同じ文言でエラーはなくなり、今度は別の箇所へ。ちょうど上記のように、私はイゴールに手紙を書きました。

エラーが発生したプリントを挿入することで、問題を解決できるかもしれません。

他に方法はありません、あなたのエラーの理由はすでに説明しました

 

こんにちは、MQL4からMQL5にインジケータを書き換える ことにしたのですが、インジケータバッファで詰まってしまいました...。必要なものは全て入力したつもりですが、まだインジケーターラインが表示されません

例えば、過去30バーの終値を表示したいのですが、バッファにコメントを入れて、何かで埋め尽くされているかどうかを確認します...

バッファは埋まっているのに、チャートは空っぽで見えない((

MQL5ではバーが逆になっているのでしょうか?)


//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                                                . |
//|                                                                . |
//+------------------------------------------------------------------+
#property copyright "."
#property link      "."
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 8         // Количество буферов индикатора
#property indicator_plots   8         // Количество графических серий

#property indicator_label1 "TestLine" 
#property indicator_type1 DRAW_LINE  
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1  
#property indicator_color1 Red  
//+------------------------------------------------------------------+
//|                        БУФЕРЫ                                    |
//+------------------------------------------------------------------+
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
//+------------------------------------------------------------------+
//|                     ПАРАМЕТРЫ БУфЕРА                             |
//+------------------------------------------------------------------+
int OnInit(){                   

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);  
PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);         
PlotIndexSetInteger(0,PLOT_LINE_COLOR,Blue);   

return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
Comment("");}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Custom indicator 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[]){
                
                
for(int Z = 30; Z>=0; Z--) {
Buffer1[Z] = iClose(NULL,0,Z);} 
Comment(Buffer1[0]);               

return(rates_total);}
//+------------------------------------------------------------------+

 
Nikita Zubarov:

こんにちは、MQL4からMQL5にインジケータを書き換える ことにしたのですが、インジケータバッファで詰まってしまいました...。必要なものは全て入力したつもりですが、まだインジケーターラインが表示されません

例えば、過去30バーの終値を表示したいのですが、バッファにコメントを入れて、何かで埋め尽くされているかどうかを確認します...

バッファは埋まっているのにチャートが空っぽで見れない((

MQL5ではバーが逆になっているのでしょうか?)


MQL5ではバーの番号付けが逆になっている

for(int Z = rates_total-50; Z<rates_total; Z++)


https://www.mql5.com/ru/docs/array/arraysetasseries、インデックスを変更することができます。
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Igor Makanu:

MQL6ではバーの番号付けが逆になっている


https://www.mql5.com/ru/docs/array/arraysetasseries を使ってインデックスを変更することができます。

ありがとうございます!、一行追加したら正常に表示されるようになりました。

ArraySetAsSeries(Buffer1,true); 
が、バーのナンバリングは右から左へ同じで、バッファが逆になっているだけだと思うのですが...。
 
Nikita Zubarov:

ありがとうございます!、一行追加して、ちゃんと表示されるようになりましたよ。

が、バーのナンバリングは右から左へ同じで、バッファが逆になっているだけのような気がするのですが...。

4では、小節番号0が一番右の小節です。

5では、バー#0が一番左のバーです。

デフォルトでは、インジケータ・バッファの インデックス付けは、時系列

ArraySetAsSeries()を使用すると、1つの配列にのみ適用されます - あなたの例では、インジケータバッファ配列 Buffer1 に対してですが、正しい計算のためには、クローズにも適用する必要があります。

ArraySetAsSeries(Buffer1,true); 
ArraySetAsSeries(close,true); 
for(int Z = 30; Z>=0; Z--) 
{
Buffer1[Z] = сlose[i];
} 

または、上記のようにループを変更する

 
こんにちは、私のEAが現在のチャート以外のシンボルでポジションをオープン したい場合、アドバイスをお願いします。
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
このような場合、「ディアボロス」は、「ディアボロス」と呼ばれます。
 
Averman:
こんにちは、私のEAが現在のチャート以外のシンボルでポジションをオープン したい場合、アドバイスをお願いします。
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
このような場合、「ディアボロス」は、「ディアボロス」と呼ばれます。

もちろん、正しいとは言えません。

OrderSend("EURUSD", OP_BUY, Lots, MarketInfo("EURUSD",MODE_ASK), Slip, 0, 0, "", Magic, 0, Blue) 
私がどこかで間違えていなければ、あなたが間違えているのです。しかし、いずれにせよ、意味は理解できるはずです。
 
MQL6がすでに登場していますが、このシェルをテストされた方はいらっしゃいますか?
 
Seric29:
MQL6がすでに登場していますが、このシェルをテストされた方はいらっしゃいますか?

今日は4月1日ですか?

 
Alexey Viktorov:

4月1日ではありませんか?

とググり始めました))。

...mql6のホームページが1ページ、mql5.comのフォーラムへのリンクが1つありました。