[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 615

 
ALex2008:
PERIOD_M1などの代わりに、ピリオドに対応する整数を入れればいいわけですね。具体的には、iOpen(NULL,PERIOD_M1,1) の代わりに iOpen(NULL,1,1) でもよいのでしょうか?

はい、その通りです。
 
FAQ:
あと少し。ありがとうございました。
 
Fox_RM:
あと少し。ありがとうございました。


"ほとんど "とはどういう意味ですか? 私たちはそれを必要とせず、絶対的な成功を望んでいます。)

 
良いアドバイザーを紹介してください。
 
kuk:
良い参議院議員とは?

自分で生地を刷り、ベッドにコーヒーを持ち込んで...。

と常にアドバイスしています.

全ロシア大統領の下で...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;

 
DOCTORS:

インジケータから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で計算した方がよっぽど簡単なのに、なぜわざわざ引っ張るのか。

インジケーターバッファーは インジケーターからしか取れないのでなおさらです

 
Vinin:


また、EAで計算する方が簡単なのに、なぜ持ち出すのでしょうか。

特に、インジケーターバッファーはインジケーターからしか取れないので


まあ、せめてインジケーターのバッファを 表示してくれれば... :( 今、ちょうど混乱しているのですが、ボードで前日の最大/最小を検索する場合。例えば、私のインジケータでは簡単です - ので、ループ、しかし私のowlはスタックします...+現在のバー(私はいつでもowlを使用できるため)から前日の最後のバー(最大値を計算するため)にカウントする問題。現在のバーから前日の最後のバーまで取得する方法を教えていただけないでしょうか? 少なくとも30分間の式、つまりアルゴリズムを見たいのですが・・・。
 
DOCTORS:

まあ、少なくともインジケータバッファを表示する...:( 私はちょうどこの点で、前日の最大/最小のための検索を処方するアドバイスなら、切り札。例えば、私のインジケータでは簡単です - そうループ、しかし私のフクロウはスタックします...+現在のバー(フクロウはいつでもトリガーすることができるので)から前日の最後のバー(最大値を計算するために)までのカウントに問題があります。現在のバーから前日の最後のバーまで取得する方法を教えていただけないでしょうか? 少なくとも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)];

//опять графика

}

....}