エリート指標 :) - ページ 157

 

動作します。

if (previousNumberOfBars != Bars) orif (volume[0]==1) のようなものを使うかもしれませんが、ボリュームの使い方は微妙です(エラーのためのスペースを多く残し、最初の実行では、ボリュームがすでに> 1になりそうなので、ほぼ確実に、必要なすべてのバーを計算しないでしょう)。

私がお勧めするのは、ループの最初の2行を反転させて、次のようなものにすることです。

if(lastbar != Time[0])

{

for(int i=limit; i>=0; i--)

{[/php]You need to check that condition only once

regards

mladen

Snowski:
Quick coding question:

If I want an indicator to start its calculation on the open of a new bar, how can I code this?

I now have this - just an example, but I doubt it's correct:

[php]

datetime lastbar;

double buffer_a[];

double buffer_b[];

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

//| Custom indicator iteration function |

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

int start()

{

int bars_counted = IndicatorCounted();

if(bars_counted < 0)

{

return(1);

}

bars_counted--;

int limit = Bars - bars_counted;

if(limit>BarsToLoad && BarsToLoad>0)

{

limit = BarsToLoad;

}

for(int i=limit; i>=0; i--)

{

if(lastbar != Time[0])

{

buffer_a = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);

buffer_b = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);

//LONG ARROW

if(buffer_a > buffer_b)

{

ExtMapBuffer1 = Open - distance;

}

//SHORT ARROW

if(buffer_a < buffer_b)

{

ExtMapBuffer2 = Open + distance;

}

lastbar = Time[0];

}

}

//----

return(0);

}

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

ええ、もちろん、ループを切り替えて...ずっといいです。

if(previousNumberOfBars != Bars) と if(lastbar != Time[0]) のどちらの方法が一番正確だと思われますか?

個人的には一見して明らかな差はないと思うのですが、間違っているかもしれません。Volumeのオプションは、インジケータには向いていませんが、EAではOKかもしれませんね。

私の稚拙なインディー・コーディング・スキルに大きな助けとなっています...。

ありがとうございました。

San.

 
chris1010:
MladenかToolsさん、これにポップアップとメールアラートを追加することは可能でしょうか?インジケーターウィンドウの一番上か一番下に、インジケーターウィンドウの全てのラインが同時に揃うと、良い売買ポイントが特定されるような気がします。よろしくお願いします。クリス

クリスさん、お待たせしました。現在、市場は閉鎖されているため、アラートをライブでテストすることはできませんが、1分足チャートでアラートを表示させました。また、このインジケータは、両方の線が最大または最小になったとき、良い売りと買いのチャンスになるようで、あなたと同意見です。

ファイル:
 

ツールズさん。ありがとうございます。素晴らしいプログラマーに助けてもらうのはかっこいいですね。

 

サン

正直なところ、どちらをお勧めすればいいのかわかりません。

Barsは 現在のチャートのメタトレーダー内部変数のようなもので、Time[0] は現在のチャートの履歴にあるすべてのバーを記述した配列構造の要素です。私の推測では、まずBarsが新しい配列サイズを反映するように更新され、次に配列に新しく追加された 構造がデータ(時間、「ボリューム」、価格)で更新されます。しかし、もしそれを「順次方式」(コードの実行が終了するまで他のスレッドの実行を許さない)で行うなら、私はそれが行われる方法であるとほぼ100%確信しています。そして、新しいチャートを開き、より多くのデータがダウンロードされ、配列や変数、メタトレーダー・コードから使用するチャートに追加されたとき、私たちは皆、実行中の「休止」に気づきました)それから、両方の変数は同時にユーザーから見えるようになるのです......アクセス時間は同じであるべきです...だから:すべて同じ

よろしくお願いします。

mladen

Snowski:
もちろん、ループを切り替えるともっと良くなりますよ。

if(previousNumberOfBars != Bars) or if(lastbar != Time[0]) option, どちらの方法が一番正確だと思われますか?

個人的には一見して明らかな差はないと思うのですが、間違っているかもしれません。Volumeのオプションは、インジケータには向いていませんが、EAではOKかもしれませんね。

私の稚拙なインディー・コーディング・スキルに大きな助けとなっています...。

ありがとうございます。

サン
 
mladen:

不動さん、大丈夫です。ただ、どうしてもやらなければならないことがあり、TSDの投稿が少し滞りました。今はそれが解決しているので、私の時間はより少なくなっています。

皆さん、良い週末をお過ごしください。

よろしくお願いします。

mladen

mladenさん、こんにちは。

すべてうまくいっていると聞いてうれしいです。

機会があれば、私は2つの指標、RSXのMAと三角形のMAアバンドを投稿しました。

三角形のMAアバンドは、RSXのMAに適用することができますか?

ありがとうございました。

不動さん

Fudomyoさん

mladenです。

は、RSXのMA(RSXのMAが無理なら単純なRSXでも可)と三角MAアバンドの組み合わせは可能でしょうか?

ありがとうございます。
 

mladenさん、素晴らしい説明ありがとうございます!そのような見方(MT4のスレッド)はしたことがありませんでした...また何か勉強になりました。

現在の設定(Time[0])にこだわります。

乾杯、San.

 

...

不動

お待たせしました。

いくつかの変更を加えました(実際には新しいインジケータですが、これは私がアイデアとして導き出したものです)あなたが考えていたものであるかどうかを確認してください。

まず、カラーブロックを削除し、RSXのラインに色を付けました。これにより、シグナルラインより 上か下かを示すようになりました。もう一つは、単一ファイルのインジケータであることです(外部のRsxインジケータは必要ありません)。

TmaApplyTotoを 0にするとRSXに適用され、0にすると信号線(RSXのMA)に適用されます。
よろしくお願いします。

mladen

Fudomyo:
mladenさん、こんにちは。

お元気そうでなによりです。

機会があれば、RSXのMAとTriangular MA abandsの2つのインジケータを投稿します。

RSXのMAにTriangular MA abandsを適用することは可能でしょうか?

ありがとうございます。

不動さん
ファイル:
 

加算を補間する

ハイ mladen

mtf移動平均

mtfストハクティック

追加を補間する

感謝

ファイル:
 

casaliss,

このスレッドにあるもの(と、もう2つほど )は、https://www.mql5.com/en/forum/1 78741。

それらはオプションとして持っていませんが、これらの指標は実際に線形補間を適用しています。

よろしくお願いします。

mladen

casaliss:
こんにちは、mladenです。

mtfムービングアベレージ

mtf stohactic

を追加して補間する

感謝