コーディングのヘルプ - ページ 192

 

こんにちは、mladenです。

私は長い間、このインディケータに適用し、いくつかのコードを作ってみました、それは表示、ノーリフレッシュと再描画の問題を持っていますが、私はそれが持っていない理由がわからない、あなたは私に理由を教えてもらえますか?しかし、私はあなたのように、ローソク足がまだ動いているときに瞬時に値とシグナルを計算できることを望んでいます(クローズ後だけでなく)、さもなければ、シグナルは少なくともローソク足1本分遅れます。

 

ハローコーダーズ

こんにちはmladenです。

水平線が価格にタッチしたときにアラートを表示するインジケータをHDDで見つけました。私はそれを少し修正し、それはうまく動作します。しかし、今私は何かを追加したいと思います。しかし、今、追加したいことがある。それは、正確な線に触れずに、価格が何ピップスか早く反転することがよくあることだ。そこで、チャートにもっと多くの線を引くか、このインジケータを改造して、チャートの線がタッチされたときだけでなく、数ピップ上か下かにアラートを表示させるようにしました。つまり、価格がチャート上のラインに+5ピップスまたはライン-5ピップス触れたときに、インジケータはアラートを表示する必要があります。

このラインを変更するのが私のアイデアです。

if (High[0]>=line && line>=Low[0]) を次のようなものに変更することです。

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0]))

明らかにうまくいきません...。なぜなのかさっぱりわかりません。

そしてもう一つの問題は、これは1.XXXXの価格に対してのみ動作するということです。円ペアや指数CFDに0.0005を使うことはできません。

誰かがそれを修正することができれば、私は幸せです。

ありがとうございます!

以下はそのコードです。

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 | です。

//+------------------------------------------------------------------+

extern bool Notification=true;

extern bool displayAlert=true;

文字列 テキスト

#property indicator_chart_window

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

//---- インジケータ

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケーターイテレーション関数

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return;

static datetime Time0;

if (Time0 == Time[0]) return; // 1つのバーにつき1つのアラート。

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

文字列名 = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // HLINE ではない

if (High[0]>=line && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @"+Close[0];

Alert(Text)。

Time0 = Time[0]; // もうアラートは出ない。

if (Notification)SendNotification(Text);

}

}

//----

return(0)を実行します。

}

//+------------------------------------------------------------------+

 
Marbo:
こんにちは、コーダーの皆さん。

こんにちはmladenです。

水平線が価格にタッチしたときにアラートを表示するインジケータをHDDで見つけました。私はそれを少し修正し、それはうまく動作します。しかし、今私は何かを追加したいと思います。しかし、今、追加したいことがある。それは、正確な線に触れずに、価格が何ピップスか早く反転することがよくあることだ。そこで、チャートにもっと多くの線を引くか、このインジケータを改造して、チャートの線がタッチされたときだけでなく、数ピップ上か下かにアラートを表示させるようにしました。つまり、価格がチャート上のラインに+5ピップスまたはライン-5ピップス触れたときに、インジケータはアラートを表示する必要があります。

このラインを変更するのが私のアイデアです。

if (High[0]>=line && line>=Low[0]) を次のようなものに変更することです。

if ((High[0]>=line+0.0005 && line+0.0005>=Low[0]) || (if (High[0]>=line-0.0005 && line-0.0005>=Low[0]) )

明らかにうまくいきません...。なぜなのかさっぱりわかりません。

そしてもう一つの問題は、これは1.XXXXの価格に対してのみ動作するということです。円ペアや指数CFDに0.0005を使うことはできません。

誰かがそれを修正することができれば、私は幸せです。

ありがとうございます!

以下はそのコードです。

//+------------------------------------------------------------------+

//| LINE_ALERT.mq4 | です。

//+------------------------------------------------------------------+

extern bool Notification=true;

extern bool displayAlert=true;

文字列 テキスト

#property indicator_chart_window

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

//---- インジケータ

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| カスタムインジケーターイテレーション関数

//+------------------------------------------------------------------+

int start()

{

//----

if (displayAlert==false) return;

static datetime Time0;

if (Time0 == Time[0]) return; // 1つのバーにつき1つのアラート。

for(int iObj = ObjectsTotal() - 1; iObj >= 0; iObj--)

{

文字列名 = ObjectName(iObj);

if (ObjectType(name) == OBJ_HLINE)

{

double line = ObjectGet(name, OBJPROP_PRICE1);

}

else continue; // HLINE ではない

if (High[0]>=line && line>=Low[0])

{

Text = Symbol()+" M "+Period()+" touched S/R @"+Close[0];

Alert(Text)。

Time0 = Time[0]; // もうアラートは出ない。

if (Notification) SendNotification(Text);

}

}

//----

return(0)を実行します。

//+------------------------------------------------------------------+

マーボー

添付ファイルのようなことができます。ただ、ラインからのピップ数(高値・安値の場合は+・-)をどうするかは、修正したほうがいいと思います。

ファイル:
 

素晴らしい!ありがとうございました!

 
zilliq:
Mrtoolさん、Mladenさん、こんにちは。

TSVのBullish & Bearishインジケータはどのように構築されているのか、どなたか教えてください。私はそれについての任意の情報を見つけていない?

ありがとうございます。

Zilliq

Zilliq ここにバージョンがあります https://www.forex-tsd.com/forum/debates-discussions/116-something-interesting-please-post-here/page299#comment_679505 ソースコード付き。

 
cwu:
0を入力したら、SLもTPもないということでしょうか? またよろしくお願いします。

Cwu,

はい、そのはずです。

 

みんな

TSVのBullish &Bearishを調べて みたところ、一番古いのは2007年のものでした。それが式である場合、それは少し異なる形でGannのハイローアクティベーターに他なりません(本質 - 計算 - は同じです)。

 

ありがとう、みんな。

私はこの週末を参照してくださいと私は私が持っているTSV Bearish / Bullishを投稿する予定です。

私はフランスで獣医だと私は明日働くので、私は日曜日に チェックされます。

私はすでにコードギャンハイとロー、特に滑らかなバージョンを持っているので、それは簡単でなければならない

素敵な週末を過ごすとすべてのために感謝

Zilliq

 

ムラデンです。

ラインアラートのインジケーターについて、もう一つ質問があります。今のところ、水平 線で動作しています。OBJ_TRENDを使用してトレンドラインを実装しようとしたのですが、1つだけ理解できない問題があります。何ヶ月も前に他のフォーラムで、トレンドラインの始点と終点を決定しなければならないと読みました。その方法について、何か情報をいただけないでしょうか?それとも、私が想像しているよりもずっと難しいことなのでしょうか?

よろしくお願いします。

マーボ

 
Marbo:
ムラデン

ラインアラートのインジケーターについて、もう一つ質問があります。今のところ、水平線で動作しています。また、OBJ_TRENDを使用してトレンドラインを実装しようとしたのですが、一つ理解できない問題があります。何ヶ月も前に他のフォーラムで、トレンドラインの始点と終点を決定しなければならないと読みました。その方法について、何か情報をいただけないでしょうか?それとも、私が想像しているよりもずっと難しいことなのでしょうか?

よろしくお願いします。

マーボ

マーボ

実は、始点と終点を知る必要はないのです。別の方法で値を取得することができます(ObjectGetValueByShift()関数を使用し、トレンドラインの外側の価格を求めている場合は価格0を返します)。その方法の一例として、この投稿をご覧ください :https://www.mql5.com/en/forum/177603/page3