これは私がいつも使っている便利なスクリプトです。これは10ピップごとに基準線を引いて、相場の動きを把握するのに役立つ。画面右側の価格を見てこれを理解するのは本当に悔しいので、スクリプトを作りました。このスクリプトは、初心者がオブジェクトを描く練習をするのにいいかもしれません。
スクリプトではなくCIにする、終値からではなく0から計算する、チャートの見える部分(WinPriceMax()とその姉妹)にのみ描画する、価格が限界を超えて動いたら更新する(あなたの場合、ライン間隔=10pips)、OBJ_HLINEの代わりにOBJ_RECTANGLEを 使用する、などです。
これで、開いているすべてのチャートで同期されます。
:D
または ... これをインジケータにする ... 新しいバーの開始時にのみリフレッシュされるように、もう少しコードが必要 ...
int deinit() { for (int ix = 0; ix < nLines; ix++) // delete my horizontal lines { ObjectDelete("tensLines"+ix); } return(0); } int start() { int nLines = 40; // Number of total line to draw double lineInterval = 0.0010; // Interval between lines double normPrice = NormalizeDouble(Close[1],3); // Current price is rounded to nearest "10" for (int ix = 0; ix < nLines; ix++) // Loop span number of times { if(ObjectFind("tensLines"+ix) < 0) ObjectCreate("tensLines"+ix, OBJ_HLINE, 0, 0, normPrice+((ix-(nLines/2))*lineInterval)); // Place half above and half below the current price else ObjectSet("tensLines"+ix, OBJPROP_PRICE1, normPrice+((ix-(nLines/2))*lineInterval)); ObjectSet("tensLines"+ix,OBJPROP_COLOR,DarkSlateGray); // Make the lines look better } return(0); //All done }
または ... これをインジケータにする ... 新しいバーの開始時にのみリフレッシュされるように、もう少しコードが必要 ... ...
はい、もちろん -- ずっと良い。教えてください、ObjectDeleteのようなものにある種の "ワイルドカード "を使う方法はありますか?ObjectDelete("tensLines "*);つまり、"tensLines "で始まるものをすべて削除する、というようなことをしたいんです。
私は、このバーを使ったレイアウトが好きです。目に優しいですしね。右側の価格なんて見たことない」とおっしゃいますね。私はよく不思議に思うのですが、買うか売るかの二択だけで、五分五分の確率なのに、八割方間違って いるんです;-)
こちらも同じ.
:D
実は、このバーのレイアウトが好きなんです。目に優しいですからね。右肩上がりの価格なんて見たことない」とおっしゃいますね。買うか売るかの二択なのに、なぜ五分五分の確率で8割方間違うのか、よく不思議に思っていました;-)
onewithzachyさん、OBJ_RECTANGLEスタイルのチャートの 設定に取り掛かったところです。WindowsBarsPerChart()とWindowsFirstVisibleBar() について言及 されましたが、私はまだ困っています。画面の左側から右側へバーを走らせる方法を見つけ出すのにまだ苦労しています。でも、このレイアウトは気に入っていますこれを行う方法について何か手がかりがありますか?
MisterDogさん、こんにちは。
簡単なことです。
1.あるバーと別のバーの間の時間距離を取得します。これは、現在のバーの時間と前のバーの時間を引くか、周期に60秒を掛けることで得られますが、月曜日には時間差があるので、後者を選びます。
datetime Bar_Time_Gap; // or integer type Bar_Time_Gap = Time [0] - Time [1]; // or Time [7] - Time [8] or whatever Bar_Time_Gap = Period()*60;
2.2. WindowsFirstVisibleBar()は一番左のバーです。そのバーから描画を始めるか、あるいはそのバーのn本左、例えば5本左から描画を始めるのがよいでしょう。 WindowsFirstVisibleBar() の戻り 値が20 だとします。つまり、一番左のバーはバー[20]であり、バー[25]から描画を開始することになります。実際には[Bars - 1]から描画しています。
datetime Start; Start = Time [WindowFirstVisibleBar() + 5]; //which is the same ... Start = Time [WindowFirstVisibleBar()] - 5 * Bar_Time_Gap; //... with this one
3.3. WindowsBarsPerChart() は、チャート上のバーの本 数を表します。WindowsBarsPerChart() の戻り 値が35で、 WindowsFirstVisibleBar()が20 だとします。つまり 、バー[0]から始まって 右側には約15本の空白が あることになります。 この矩形の端を、その空いたバーの右端に 描くか、あるいは、そのバーの右端から5本分右に描き始める とよいでしょう。
datetime End; int Right_Bar = WindowBarsPerChart() - WindowFirstVisibleBar() + 5; End = Time[0] + Right_Bar * Bar_Time_Gap;
新しいバーが来ると、この右のバーは左へ移動するので、長方形の端が見えるようになり、それをまた描かなければなりません。
私はここで間違いを作っていないことを望む、cozは私がこれを速く書いた。
:D

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
これは私がいつも使っている便利なスクリプトです。これは10ピップごとに基準線を引いて、相場の動きを把握するのに役立つ。画面右側の価格を見てこれを理解するのは本当に悔しいので、スクリプトを作りました。このスクリプトは、初心者がオブジェクトを描く練習をするのにいいかもしれない。