[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 875

 
reag:

はい、最初のオプションは機能しません、私は非標準の時間枠で作業していますが、2番目のオプションは機能します。皆さん、ありがとうございました。


最初のオプションは動作します - デモ口座で少なくとも20日間(チェックする時間がない)と10年間の歴史上のテスターで

ZS: まあ、ダメなものはダメなんですけどね(笑)

 
IgorM:


最初のオプションは動作します - デモ口座で少なくとも20日間(チェックする時間がない)と10年間の歴史の中でテスターで

SZS: まあ、働かないというのは、働かないということなんですけどね :)

最初のものは、実際のアカウントで動作します。私の場合、チャートウィンドウが非常に大きいので、おそらくうまくいくのでしょう。おそらく、チャートウィンドウが非常に大きく、最大値に達していないために動作しているのでしょう...。が、もしかしたらEAがそうなのかもしれませんね~、彼は大丈夫ですが・・・。:)
 
Andrei01:
デモでは怖くありません。:) でも、実際の現場では、無理をせず、普通にやったほうがいいかもしれませんね・・・。おそらく、チャートウィンドウが非常に大きく、最大値に達しないために動作するのでしょう ...が、もしかしたらEAがそうなのかもしれませんね~、うまくいきそうです・・・。:)


そうではありません -バーの 数を数えることによって、私は歴史のロードの瞬間を "見逃すことはできない "と、これらの瞬間に、それは少し待つことをお勧めします、履歴がTFの終わりにロードされるだけでなく、時にはTFの先頭にもロードされます - OK、これは大きな秘密だshhhhhhhhhhh。

:)

 
IgorM:


バーの数を数えることによって、私は歴史のロードの瞬間を "見逃さない "ことができます - そしてこれらの瞬間に、それは少し待つことをお勧めします、履歴はTFの終わりにロードされるだけでなく、時にはそれはあまりにもTFの先頭をロード - OK、それは大きな秘密だシーッ - シーッ

:)


2つ目のバリエーションもうまくいかないことが判明しました.インジケータ配列のバー番号は、いずれにしても変更されません。規格外の時間軸のためと理解しています。標準のPeriod_Converter_Optで形成され、M1からM2まで取得し、M2を開くとBarsはウィンドウのMax barの半分に等しく、ウィンドウのMax barの値まで行くとSetIndexBuffer 配列のfomationが停止する...((
 
reag:

2番目の選択肢もうまくいかないことが判明した.インジケータ配列のバーナンバーは変更されません。規格外の時間軸だからでしょうね。標準のPeriod_Converter_Optで形成され、M1からM2まで取得し、M2を開くとBarsはウィンドウのMax barの半分に等しく、ウィンドウのMax barの値まで行くとSetIndexBuffer index arrayのfomationが停止する...((


しかし、少なくとも新しいバーの いくつかのパラメータは、記憶されたバーと比較することができます?

非標準のTFを使用している場合、ゼロと思われるバーが0、1でないインデックスを持っている可能性はありますか?

 
IgorM:


しかし、少なくとも新しいバーのいくつかのパラメータは、記憶されたバーと比較することができます?

非標準のTFを使用している場合、ゼロと思われるバーが0, 1以外のインデックスを持っている可能性はありませんか?


新しいバーを認識するアルゴリズムは動作しますが、チャートはウィンドウ内の最大のバーに達した後に停止します; SetIndexBufferインデックス配列が 停止することを寓意していると仮定します。問題は以下の通りです。つまり、有効にした後はすべてうまくいき、その後チャートがフリーズしてバーが移動してしまいます...。その結果、インジケーターが動作しないのです
 
reag:

アルゴリズム自体は新しいバーを認識しますが、ウィンドウ内の最大バーに達した後、チャートが停止します。問題は以下の通りです。つまり、有効にした後はすべてうまくいき、その後チャートがフリーズしてバーが移動してしまいます...。その結果、インジケーターが動作しないのです

起動時に動作する場合は、再描画するバーの本数が正しく定義されていないことが原因かもしれません。
 
IgorM:

起動時にこのような現象が発生する場合、再描画するバーの本数が正しく定義されていないことが考えられます。

#property indicator_chart_window
#property show_inputs
#property indicator_buffers 3 // バッファの数
#property indicator_color1 DarkSeaGreen // 最初の行の色
#property indicator_color2 SaddleBrown // 2行目の色
#property indicator_color3 SaddleBrown // 2行目の色

extern intHistory=300; // 計算された履歴のバー数
extern int Arrows=1;
extern int Line=0; // 計算に使用するバーの本数
//extern int Left_Right= 5; // 水平方向のオフセット(バー).
extern int Up_Right=8; // 垂直方向のオフセット(ポイント)
static int up = 1, intPost=600;
static datetime VPPosLStr,time0new,time0old;
double Line_0[],Line_1[],Line_2[]; //データアレイの宣言

//--------------------------------------------------------------------
int init() //特殊関数 init()
{

if (Arrows==1 && Line==1)int Style=1;
if (Arrows==1 && Lines!=1)style=3;
if (Arrows!=1 && Lines==1)style=2。
switch(Style) // ヘッダスイッチ
{ // 本体起動スイッチ
ケース1 :
//--------------------------------------------------------------------
SetIndexBuffer(0,Line_0); // バッファ 0 に配列を代入する。
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1);// ラインスタイル
SetIndexEmptyValue(0,0.0);
//--------------------------------------------------------------------
SetIndexBuffer(1,Line_1); // バッファ 1 に配列を代入する。
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // ラインスタイル
SetIndexArrow (1,217)。
//--------------------------------------------------------------------
SetIndexBuffer(2,Line_2); // バッファ2に配列を割り当てる。
SetIndexStyle (2,DRAW_ARROW,EMPTY,1); // ラインスタイル
SetIndexArrow (2,218)。
//--------------------------------------------------------------------
break; // オプション。
ケース2 :
//--------------------------------------------------------------------
SetIndexBuffer(0,Line_0); // バッファ 0 に配列を代入する。
SetIndexStyle(0,DRAW_SECTION,STYLE_DOT,1);// ラインスタイル
SetIndexEmptyValue(0,0.0);
が壊れる。
ケース3 :
//--------------------------------------------------------------------
SetIndexBuffer(1,Line_1); // バッファ 1 に配列を代入する。
SetIndexStyle(1,DRAW_ARROW,EMPTY,1); // ラインスタイル
SetIndexArrow (1,217)。
//--------------------------------------------------------------------
SetIndexBuffer(2,Line_2); // バッファ2に配列を割り当てる。
SetIndexStyle (2,DRAW_ARROW,EMPTY,1); // ラインスタイル
SetIndexArrow (2,218)。
//--------------------------------------------------------------------
が壊れる。
default: break; // ケースが一致しなかった場合
}
int k=Bars; // 本体スイッチの終わり

return(0); // 特別な init() を終了します。
}
//--------------------------------------------------------------------
int start() // 特殊関数 start()
{
//----+ バーの数が正しいかどうかチェックする。
//calculate インジケータ
if(履歴-1 < 15)
return(0)です。

//+--- +==========================================+
int i, // バーインデックス
n, // 形式パラメータ (インデックス)
k, // インデックス配列のインデックス要素のインデックス.
Counted_bars; // 計算したバーの本数
ダブルライン
iBarShift(NULL, 0, VrPostStr);
//Comment (indpostr," ",up)。
//--------------------------------------------------------------------
/* Counted_bars=IndicatorCounted(); // カウントされたバーの本数
//---- エラーの可能性をチェックする
if(Counted_bars < 0)
return(-1)です。
i=Bars-Counted_bars-1+indicatorCounted; // カウントされていない最初のもののインデックス
if (i>History-1) // バーがたくさんある場合、.
i=History-1;//...与えられた数値を計算する
time0new=Time[0]です。
if(time0old!=time0new)とする。
{
i=History-1です。
time0old=time0newです。
コメント("Bars ",Bars,", History ",History,", i ",i)。
}

for(i=i-1; i >= 3; i--) // カウントされていない小節をループする。
{
if(up==0)
{
Line=Low[i]です。

if (Line<Low[i-1] && Line<Low[i-2] && Bpostr<Time[i])
{
Line_0 [i] = Line[i];
Line_0 [i] = Line;
Line_2[i] = Line-up_down*Point;
up=1です。
を続ける。
}
}
if(up==1) //2本のローソク足の基準でフィボグリッドを構築 ロールバック
{
Line=High[i]です。

if (Line>High[i-1] && Line>High[i-2]&& Bpostr<Time[i])。
{
Line_0[i] = Line[i];
Line_0[i] = Line;
Line_1[i] = Line+Up_down*Point;
up=0とする。
}
}
//次のバーのインデックスを計算する
}
// WindowRedraw();
//--------------------------------------------------------------------
return(0)です。
}
//--------------------------------------------------------------------
int deinit()
{

return(0)です。
}
 
reag:


   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   for(int i=0; i<limit; i++){
私はインジケータをこのように書いています、これが私の標準的なインジケータのスタートです - 少し引き伸ばされていますが、私がmqlを扱っていたとき、私はこのように書き、それが残っている方法です
キリル文字で書かれた変数名が怖くて、コメントと混同してしまいます。
 
IgorM:
私はインジケータをこのように書いています、これが私の標準的なインジケータのスタートです。
キリル文字で書かれた変数名が怖くて、コメントと混同してしまいます。

そうですね...私が試しているだけです...キリル )), 非標準のタイムフレームでBarsとIndicatorCounted()の組み合わせは正確に動作しません、Barsウィンドウの最大バーを超えるとそれ以上進めなくなります.