if (t==60){b=24; //значение b определяет количество баров для дня на таймфрейме. l=24*Period()*60; //l используется для доп. значений, тут не актуально }
if (t==30){b=48; l=48*Period()*60; }
....
....
if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]> Open[iHighest(NULL,0,MODE_OPEN,b,i)]) {
ExtMapBuffer1[i] = Close[iHighest(NULL,0,MODE_CLOSE,b,i)]; day_max=Close[iHighest(NULL,0,MODE_CLOSE,b,i)];//сделал для того, что значение ExtMapBuffer1[i] при выводе на экран почему-то 0, тогда как day_max показыает правильно... ..... //тут графика
}
else if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]<= Open[iHighest(NULL,0,MODE_OPEN,b,i)]) {ExtMapBuffer1[i] = Open[iHighest(NULL,0,MODE_OPEN,b,i)]; day_max= Open[iHighest(NULL,0,MODE_OPEN,b,i)];
PERIOD_M1などの代わりに、ピリオドに対応する整数を入れればいいわけですね。具体的には、iOpen(NULL,PERIOD_M1,1) の代わりに iOpen(NULL,1,1) でもよいのでしょうか?
はい、その通りです。
あと少し。ありがとうございました。
"ほとんど "とはどういう意味ですか? 私たちはそれを必要とせず、絶対的な成功を望んでいます。)
良い参議院議員とは?
自分で生地を刷り、ベッドにコーヒーを持ち込んで...。
と常にアドバイスしています.
全ロシア大統領の下で...DDD
自作EAが一番いい(そのように作れるのであれば)
インジケータからday_max, day_min 値を引き出す方法を教えてください。アイカスタムであることは明らかですが、どのように?つまり、フクロウにはそのようなインジケーターが挿入されているのです。
ヘッダーはこちらです。
#property copyright "DOC"
#property link "none"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;
インジケータからday_max, day_min 値を引き出す方法を教えてください。アイカスタムであることは明らかですが、どのように?つまり、フクロウにはそのようなインジケーターが挿入されているのです。
これがヘッダーです...
#property copyright "DOC"
#property link "none"
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Green
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double day_max;
double day_min;
EAで計算した方がよっぽど簡単なのに、なぜわざわざ引っ張るのか。
インジケーターバッファーは インジケーターからしか取れないのでなおさらです
また、EAで計算する方が簡単なのに、なぜ持ち出すのでしょうか。
特に、インジケーターバッファーはインジケーターからしか取れないので
まあ、せめてインジケーターのバッファを 表示してくれれば... :( 今、ちょうど混乱しているのですが、ボードで前日の最大/最小を検索する場合。例えば、私のインジケータでは簡単です - ので、ループ、しかし私のowlはスタックします...+現在のバー(私はいつでもowlを使用できるため)から前日の最後のバー(最大値を計算するため)にカウントする問題。現在のバーから前日の最後のバーまで取得する方法を教えていただけないでしょうか? 少なくとも30分間の式、つまりアルゴリズムを見たいのですが・・・。
まあ、少なくともインジケータバッファを表示する...:( 私はちょうどこの点で、前日の最大/最小のための検索を処方するアドバイスなら、切り札。例えば、私のインジケータでは簡単です - そうループ、しかし私のフクロウはスタックします...+現在のバー(フクロウはいつでもトリガーすることができるので)から前日の最後のバー(最大値を計算するために)までのカウントに問題があります。現在のバーから前日の最後のバーまで取得する方法を教えていただけないでしょうか? 少なくとも30分間の式、つまりアルゴリズムを見たいのですが・・・。
iHigh(NULL,PERIOD_D1,1) - 昨日の高値です。
iLow(NULL, PERIOD_D1,1) - 昨日の最小値です。
iOpen(NULL, PERIOD_D1,1) - 昨日のオープニング
iClose(NULL, PERIOD_D1,1) - 昨日の終値です。
ヴィン
iHigh(NULL, PERIOD_D1,1) - 昨日の高値です。
iLow(NULL, PERIOD_D1,1) - 昨日の安値です。
iOpen(NULL, PERIOD_D1,1) - 昨日のオープニング
iClose(NULL, PERIOD_D1,1) - 昨日の終値です。
私の要望に関して、正しくないことをお詫びします...。要するに、異なる時間枠の高値での計算が異なるということで、これは理解できるのですが、それゆえ私は次のようにしました(異なる時間枠で取引する戦略には必要なことです)。
double ExtMapBuffer1[];
double day_max;
......
int start()
{
int counted_bars = IndicatorCounted();
int limit;
//---- последний посчитанный бар будет пересчитан
if((counted_bars > 0))
counted_bars--;
limit = Bars - counted_bars;
//---- основной цикл
for(int i = 1; i < limit; i++)
{int k,z,t,b,l,n;
k=TimeHour(Time[i]);
z=TimeMinute(Time[i]);
t=Period();
if (t==60){b=24; //значение b определяет количество баров для дня на таймфрейме.
l=24*Period()*60; //l используется для доп. значений, тут не актуально
}
if (t==30){b=48;
l=48*Period()*60;
}
....
....
if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]> Open[iHighest(NULL,0,MODE_OPEN,b,i)])
{
ExtMapBuffer1[i] = Close[iHighest(NULL,0,MODE_CLOSE,b,i)];
day_max=Close[iHighest(NULL,0,MODE_CLOSE,b,i)];//сделал для того, что значение ExtMapBuffer1[i] при выводе на экран почему-то 0, тогда как day_max показыает правильно...
..... //тут графика
}
else if (Close[iHighest(NULL,0,MODE_CLOSE,b,i)]<= Open[iHighest(NULL,0,MODE_OPEN,b,i)])
{ExtMapBuffer1[i] = Open[iHighest(NULL,0,MODE_OPEN,b,i)];
day_max= Open[iHighest(NULL,0,MODE_OPEN,b,i)];
//опять графика
}
....}