long chart_ID=0; // ID графика
string name=TimeToStr(Time[0]);
int sub_window=0; // номер подокна//--- сбросим значение ошибкиResetLastError();
//--- создадим трендовую линию по заданным координатамif(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,Time[minbar],Low[minbar],Time[IPMIN],Low[IPMIN]))
{
Print(__FUNCTION__,
": не удалось создать линию тренда! Код ошибки = ",GetLastError());
return(0);
}
ObjectSet("TrendLine",OBJPROP_TIME1,Time[minbar]);
ObjectSet("TrendLine",OBJPROP_PRICE1,Low[minbar]);
ObjectSet("TrendLine",OBJPROP_TIME2,Time[IPMIN]);
ObjectSet("TrendLine",OBJPROP_PRICE2,Low[IPMIN]);
インジケータがグラフィカルオブジェクトを作成 し、そのパラメータを取得する場合、いいえ。
しかし、やはりインジケーターを使うことで全てを解決するのは簡単です。演算はインジケーター内で行われ、その結果はインジケーターバッファーを介して表示されます。
もうひとつの選択肢がある。行の代わりに行のパラメータでグローバル変数を作成しますが、この場合、関数GetValueByShift()は動作しません、あなたはそのアナログを記述する必要があります。
なるほど。しかし、グラフィック描画をせずにインジケーターでトレンドラインを引くにはどうしたらいいのでしょうか?
2つのバーインデックスがわかっている場合、それらを線で結び、右側に描画する必要があります。
なるほど。しかし、グラフィカルな絵がないインジケーターでトレンドラインを引くにはどうしたらいいのでしょうか?
2つのバーインデックスがわかっている場合、それらを線で結び、右側に描画する必要があります。
私のコードベースには、そのようなインジケータがありました。今は持っていません。
計算を使うべき。2点の座標がわかれば、3点目の座標を簡単に計算することができます。
以前、私のコードベースにはそのようなインジケータがありました。今はもうない、ない。
何事も計算でやるしかないのです。2点の座標がわかっていれば、3点目の座標を簡単に計算することができます。
この計算式はどこにあるのでしょうか?
総じて、ちょっとヌーボーな印象です。端末にはチャンネルやファイボなど、いろいろな幾何学的 指標がありますが、テスターでは役に立ちません。
この計算式はどこにあるのでしょうか?
一般的には、ヌーボーリッチといったところでしょうか。ターミナルにはチャンネルやFiboなどの幾何学的な指標がたくさんありますが、テスターでは役に立ちません。
x1, x2 - バー番号。 y1, y2 - 価格の値。x3 - 計算が行われるバーの数。
x1, x2 - バー番号。 y1, y2 - 価格の値。x3 - 計算が実行されるバーの数。
x1, x2 - バー番号。 y1, y2 - 価格の値。x3 - 計算が実行されるバーの数。
計算に基づいて作られたインジケーターで、読みはグラフィックオブジェクト上のインジケーターと同じです。
最適化が進んでいる唯一の問題は、取引が正しく開始されないことです。
このインジケータをチャートに 適用すると、最初は線が平坦ですが、その後、新しいティックに配置すると、そのようになり、その状態を維持します。
計算に基づいてインジケータを作ると、読みはグラフィカルなオブジェクトのインジケータと同じになります。
最適化が進んでいる唯一の問題は、取引が正しく開始されないことです。
インジケータをチャートに 適用すると、最初は線が平らになり、新しいティックで本来の線になり、その状態を維持することができます。
ビジュアルモードでテストしてみてください。プリントを使い、コメント、違いを探す。
ビジュアルモードでは役に立ちません。インジケーターに現在のパターンのみを表示させることができました。
インジケータ自体は、最初のインデックス(MQL4)の値を印刷し、最初の印刷は誤った値で出て、他のものは新しいティックで正しく表示されます。
もし、コードを見ても構わないのであれば、個人的なメッセージで送りました。
とにかく、トレンドラインの計算をすべてEAに移しました。正しいようです。
ラインの全範囲に表示されるようなインジケータを作ることができない。経験値が足りない。
実際に、取引が正しく開始されたことを視覚的に確認するためのインジケータが必要です。
視覚化にはグラフィカルなオブジェクトを使うことにしました。
問題は、エラー4200(オブジェクトはすでに存在しています)です。
その都度、オブジェクトに 新しい名前をつけるようにしました。同じエラーです。
複数のオブジェクトを呼び出すことは可能ですか?その場合、レイの不要な部分を切り取るにはどうしたらよいでしょうか。
とにかく、トレンドラインの計算をすべてEAに移しました。正しいようです。
ラインの全範囲に表示されるようなインジケータを作ることができない。経験値が足りない。
実際に、取引が正しく開始されたことを視覚的に確認するためのインジケータが必要です。
視覚化にはグラフィカルなオブジェクトを使うことにしました。
問題は、エラー4200(オブジェクトはすでに存在しています)です。
その都度、オブジェクトに 新しい名前をつけるようにしました。同じエラーです。
複数のオブジェクトを呼び出すことは可能ですか?その場合、レイの不要な部分を切り取るにはどうすればよいのでしょうか。
作成前に、オブジェクトが存在するかどうかを確認することができます。関数ObjectFind()。何もしなくても、存在しているのだから大丈夫、悪いエラーではないのです。
オブジェクトのセット。オブジェクトの名前にバータイムを追加すると、ユニークな名前になります。
ビームをトリミングする。プロパティObjectSet(Name,OBJPROP_RAY,false)。