boolSymbolInfoInteger(
string name, // символ ENUM_SYMBOL_INFO_INTEGER prop_id, // идентификатор свойства long& long_var // сюда примем значение свойства
);
#property copyright"Copyright 2018, Sergey S Morozov"#property link"https://www.mql5.com"#property version"1.00"#property strict//#property indicator_separate_window // Индик. рисуется в новом окне#property indicator_chart_window// Индик. рисуется в основном окне#property indicator_buffers1// Количество буферов#property indicator_color1 Red // Цвет первой линииexternint History =50; // Колич.баров в расчётной историиexternint Aver_Bars=5; // Количество баров для расчётаdouble ArrayBuff[];
//----------------------------------------------------------------------------------------------------intOnInit()
{
SetIndexBuffer(0,ArrayBuff);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
return(INIT_SUCCEEDED);
}
intOnCalculate(
constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i, // Индекс бара
n, // Формальный параметр
Counted_bars; // Количество просчитанных баров double
Sum_H, // Сумма значений High за переиод
Sum_L; // Сумма значений Low за переиод//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанногоif (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.while(i>=0) // Цикл по непосчитанным барам
{
Sum_H=0; // Обнуление в начале цикла
Sum_L=0; // Обнуление в начале циклаfor(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
{
Sum_H=Sum_H + High[n]; // Накопление суммы макс.значений
Sum_L=Sum_L + Low[n]; // Накопление суммы мин. значений
}
ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars; // Знач. 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
return(rates_total);
}
//+------------------------------------------------------------------+
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
履歴をダウンロードするには、MetaTrader 5をロードし、 ドル記号の アイコンをクリックしてください: "Symbol List Display" (or you can pressCtrlU).シンボル」ウィンドウが表示されます。SPECIFICATION "タブで、希望の通貨ペア(例:GBPCHF)を見つけてください。BARs」タブでは、分相場(M1)と必要な期間の開始と終了の日付を設定します。REQUEST "ボタンをクリックすると、csv ファイルがダウンロードされ、メタトレーダーや独自のプログラムでストラテジーのテストに使用することができます。
CArrayObj: Add() 配列に、別の CArrayObj 配列を追加するだけです。
パラメータ変換不可
ところで、どうでもいいことですが配列に追加する私のオブジェクトは、CArrayObjを 継承したクラスです。
さて、最後の行で悪態をついています - パラメータの変換は許可されていません。フォーラムメンバーの皆様、助けてください!!!
価格ステップを変数に代入したい。
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
error: 'SymbolInfoInteger' - 関数呼び出しに適用できるオーバーロードが1つもありませんでし た。
また、私のエラーは何ですか?
int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT)とする。
だから、試してみてください。
フォーラムの皆様へ
アドバイスお願いします!!!
MetaTrader 5のウィンドウにはBidと Askの 値が表示され、(私の理解では)これが勝敗を決定します。
しかし、私の戦略をテストするために履歴の分値段を使用しようとすると、これらの引用符には Bidと Askの 値が含まれておらず、「 OPEN」「HIGH」「LOW」「CLOSE」「TICKVOL」「 VOL」「SPREAD」の値が表示されます。この値から Bidと Askを どう取るか、またスプレッドをどう計算するかはよくわからない。
すべてが絶対的にクリアなのです。分履歴の引用をしようとすると」というのは具体的にどういうことか、もう少し詳しく記述してください。具体的に何をしているのか、何をしたいのか。
フォーラムメンバーの皆様、助けてください!!!
価格ステップを変数に代入したい。
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
error: 'SymbolInfoInteger' - 関数呼び出しに適用できるオーバーロードが1つもありませんでし た。
また私のミスか?
SymbolInfoIntegerの ヘルプです。
1.プロパティの値を直接的に返す。
2.関数の成功に応じて、true または false を返す。成功すれば、最後のパラメータで参照渡しされた宛先変数に、プロパティの値が格納される。
つまり、ORlong ORbool です。
フォーラムメンバーの皆様、助けてください!!!
価格ステップを変数に代入したい。
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
error: 'SymbolInfoInteger' - 関数呼び出しに適用できるオーバーロードが1つもありませんでし た。
私のエラーは何だったっけ?
Point は double 型の値である。intで受信した場合、値は0となる。
SymbolInfoIntegerの ヘルプです。
1.プロパティの値を直接的に返す。
2.関数の成功に応じて、true または false を返す。成功すれば、最後のパラメータで参照渡しされた宛先変数に、プロパティの値が格納される。
つまり、ORlong ORbool です。
了解です、ありがとうございます)
始めたばかりで、まだこの言語でどう書けばいいのかわからないんです。しかし、問題は、新しいウィンドウで、グラフが表示される場合です。でも、今のものでは表示できない...。私のエラーは何ですか?私自身は書けなかったし、ここに例もないことを考えると。しかも、明らかにSetChartData(point1,point2)のような関数を介さずに、勝手に発生している............。
そして、変数は設定されているようですが(indicator_chart_window)、やはりうまく いきません...。
絶対に何でもありです。分履歴の引用をしようとしたとき」とは、具体的にどのようなことか、もう少し詳しく記述してください。具体的に何をしているのか、何をしたいのか。
履歴をダウンロードするには、MetaTrader 5をロードし、 ドル記号の アイコンをクリックしてください: "Symbol List Display" (or you can pressCtrl U).シンボル」ウィンドウが表示されます。SPECIFICATION "タブで、希望の通貨ペア(例:GBPCHF)を見つけてください。BARs」タブでは、分相場(M1)と必要な期間の開始と終了の日付を設定します。REQUEST "ボタンをクリックすると、csv ファイルがダウンロードされ、メタトレーダーや独自のプログラムでストラテジーのテストに使用することができます。
EXCEL を使って、このファイルの内容を見ることができます。最初の行には、ファイルの情報、すなわち「日付、時刻」が表示され、次に「 OPEN」、「HIGH」、「LOW」、「CLOSE」、「TICKVOL」、「VOL」、「SPREAD」が表示されます。
このデータの意味はよくわかるのですが、MetaTrader 5が使っている、このデータからBIT とASKを 作るにはどうしたらいいのでしょうか?