Print("This is the data in the T3"+"\t "+limit+"\t "+period+"\t "+priceType);
Print("Info Indicator from the Indicator "+IndicatorCounted() );
if (t3.period != period)
{
t3.period = period;
b2 = b*b;
b3 = b2*b;
c1 = -b3;
c2 = (3*(b2+b3));
c3 = -3*(2*b2+b+b3);
c4 = (1+3*b+b3+3*b2);
w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));
w2 = 1 - w1;
}
//
//
//
//
//
for(int i=limit; i>=0; i--)
{
if(i == index_posi)
{
//v_manipul=
double price = v_manipul;
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
}else{
price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
}
}
}[/CODE]
I am trying to adapt it inside an Expert so it can be call to calculate any t3_clean value on demand, by changing the last bar value. e.g, the t3 for the bar 83.8167 is 85.9751; what if the bar was 81 and not 83 ? ect..., so so far, this is my code :
[CODE]
double CalculateT3(int limit,int period,int priceType,int index_posi, double v_manipul, int index_i)
{
double t3Array[];
double ae1[];
double ae2[];
double ae3[];
double ae4[];
double ae5[];
double ae6[];
ArrayResize( t3Array, limit);
ArrayResize( ae1, limit);
ArrayResize( ae2, limit);
ArrayResize( ae3, limit);
ArrayResize( ae4, limit);
ArrayResize( ae5, limit);
ArrayResize( ae6, limit);
Print("This is the data in the T3 FROM THE EA >>>>>> "+"\t "+limit+"\t "+period+"\t "+priceType);
Print("Info Indicator from the Indicator FROM THE EA <<<<<<<< "+IndicatorCounted() );
if (t3.period != period)
{
t3.period = period;
b2 = b*b;
b3 = b2*b;
c1 = -b3;
c2 = (3*(b2+b3));
c3 = -3*(2*b2+b+b3);
c4 = (1+3*b+b3+3*b2);
w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));
w2 = 1 - w1;
}
Print("Voici w in the EA A VOIT XXXXXXXXX>>>XXXX<<>>"+w2+" "+w1);
//
//
//
//
//
for(int i=limit; i>=0; i--)
{
if(i == index_posi)
{
//v_manipul=
double price = v_manipul;
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
Print("PREMIERE ETAPE DATA DANS LARRAY ]]]]]]]]]]]]]]}}}}} "+t3Array);
}else{
price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
double op = c1*e6 + c2*e5 + c3*e4 + c4*e3;
Print("DEUXIEME ETAPE DATA DANS LARRAY ]]]]]]]]]]]]]]}}}}} "+op);
こんにちは、皆さん。
私は全くコーディングができませんが、私が好きなこの二つのインディケータ(一つはfxbsによって作られ、もう一つは私は知りません)を組み合わせることができましたので、基本的にあなたは、(All_Averages_V2.2のように)その角度が変わるときではなく、それが価格によって貫かれたときに色が変化するT3MAを持つことになります。
Ma_RoundPriceが動作するためには、RoundPriceインディーが必要です。
楽しんでください。SVGuss様
このインジケータは動作しません。mt4エディタでコンパイルしようとしましたが、このようなエラーメッセージが出ました-"breakBars "変数が定義されていません。
どのように修正することができます任意のアイデア?
を参照してください。
ダン
親愛なるSVGuss
mt4 editorでコンパイルしてみましたが、このようなエラーメッセージが出ました-"breakBars "変数が未定義です。
どのように修正することができます任意のアイデア?
聯絡
ダンこんにちは、dansmol。
RoundPriceNE_big_mod[5dig]` もインジケータフォルダに必要です。( 申し訳ありませんが、私はmq4ファイルを持っていません。)
良いWEを
トムキャット
Boxter
私は投稿からそのインジケータに何が起こったかを知っています(それは私がある日troの美しい仕事に "過剰に満足 "していたときに、私が削除しました)しかし今私は私のPC上でそのバージョンを見つけることができません(それは長い、長い時間前でした・・・)。
とりあえず、メタトレーダーがiStdDevOnArray()関数のバグを何とか修正してくれたので、カスタムiStdDevOnArray()関数はもう必要ないので、オリジナルのインディケータを使えるようになりました。
よろしくお願いします。
ムラデンこんにちは。
これですか?
インディケータフォルダ内のKAMA
PriceSeriesはインクルードフォルダにあります。
お役に立てれば幸いです。
良いWEを。
トムキャット
トムキャット
それは1つではありません(私の場合は、内蔵の「配列上」機能を 置き換えるカスタム偏差計算がありました)が、とにかくありがとうございます。
私が言ったように、メタトレーダーのそのエラーがいずれかのアップデートで修正されたので、カスタム偏差計算の必要性は、もはや存在しないので、カウフマン適応型移動平均インジケータのそのバージョンの必要性も、もはや存在しない
よろしくお願いします。
ムラデン
こんにちは。
これですか?
KAMAはindicatorフォルダの中にあります。
PriceSeriesはインクルードフォルダにあります。
お役に立てれば幸いです。
良いWEをお過ごしください。
トムキャットこんにちは、dansmolさん。
インジケータフォルダにRoundPriceNE_big_mod[5dig]`も必要なんです。( すみません、mq4ファイルがありません。)
それでは、良いWEを
トムキャットtomcat98さん、ありがとうございました。
ありがとうございました。
ダン
インジケーターではなく、EAからt3_cleanを計算する。
こんにちは、皆さん。インジケーターではなく、EAから異なるt3_clean値を計算できるようにしたいのですが、そうすれば、インジケーターの計算に使われる最後の価格を操作することができます。私は、mladenのt3_cleanを使用しています(https://www.mql5.com/en/forum/173058/page4)。
どんなヘルプでも結構です。
ということで、t3_cleanのコードの中に、このブロックがあります。
double CalculateT3(int limit,int period,int priceType)
{
Print("This is the data in the T3"+"\t "+limit+"\t "+period+"\t "+priceType);
Print("Info Indicator from the Indicator "+IndicatorCounted() );
if (t3.period != period)
{
t3.period = period;
b2 = b*b;
b3 = b2*b;
c1 = -b3;
c2 = (3*(b2+b3));
c3 = -3*(2*b2+b+b3);
c4 = (1+3*b+b3+3*b2);
w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));
w2 = 1 - w1;
}
//
//
//
//
//
for(int i=limit; i>=0; i--)
{
if(i == index_posi)
{
//v_manipul=
double price = v_manipul;
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
}else{
price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
}
}
}[/CODE]
I am trying to adapt it inside an Expert so it can be call to calculate any t3_clean value on demand, by changing the last bar value. e.g, the t3 for the bar 83.8167 is 85.9751; what if the bar was 81 and not 83 ? ect..., so so far, this is my code :
[CODE]
double CalculateT3(int limit,int period,int priceType,int index_posi, double v_manipul, int index_i)
{
double t3Array[];
double ae1[];
double ae2[];
double ae3[];
double ae4[];
double ae5[];
double ae6[];
ArrayResize( t3Array, limit);
ArrayResize( ae1, limit);
ArrayResize( ae2, limit);
ArrayResize( ae3, limit);
ArrayResize( ae4, limit);
ArrayResize( ae5, limit);
ArrayResize( ae6, limit);
Print("This is the data in the T3 FROM THE EA >>>>>> "+"\t "+limit+"\t "+period+"\t "+priceType);
Print("Info Indicator from the Indicator FROM THE EA <<<<<<<< "+IndicatorCounted() );
if (t3.period != period)
{
t3.period = period;
b2 = b*b;
b3 = b2*b;
c1 = -b3;
c2 = (3*(b2+b3));
c3 = -3*(2*b2+b+b3);
c4 = (1+3*b+b3+3*b2);
w1 = 2 / (2 + 0.5*(MathMax(1,period)-1));
w2 = 1 - w1;
}
Print("Voici w in the EA A VOIT XXXXXXXXX>>>XXXX<<>>"+w2+" "+w1);
//
//
//
//
//
for(int i=limit; i>=0; i--)
{
if(i == index_posi)
{
//v_manipul=
double price = v_manipul;
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
Print("PREMIERE ETAPE DATA DANS LARRAY ]]]]]]]]]]]]]]}}}}} "+t3Array);
}else{
price = iMA(NULL,0,1,0,MODE_SMA,priceType,i);
e1 = w1*price + w2*ae1;
e2 = w1*e1 + w2*ae2;
e3 = w1*e2 + w2*ae3;
e4 = w1*e3 + w2*ae4;
e5 = w1*e4 + w2*ae5;
e6 = w1*e5 + w2*ae6;
t3Array=c1*e6 + c2*e5 + c3*e4 + c4*e3;
ae1 = e1;
ae2 = e2;
ae3 = e3;
ae4 = e4;
ae5 = e5;
ae6 = e6;
double op = c1*e6 + c2*e5 + c3*e4 + c4*e3;
Print("DEUXIEME ETAPE DATA DANS LARRAY ]]]]]]]]]]]]]]}}}}} "+op);
Print("SHOW ME PRICE "+ ae1[0]);
}
}
return (t3Array);
}そして、それは全く動作していません...誰か助けて?
T3オシレータ...
最初はT3を使ってawesome oscillatorの バージョンを作ろうと思ったのですが、実際にやってみると、awesome oscillatorの計算長(5,14)では速すぎることが判明しました。そこで、長さをパラメータとしてオープンにして、他のデフォルトの計算長を使うことにした。
現在、デフォルトのパラメータを使うとこんな感じになる。
最初は、T3を使ってawesome oscillatorのバージョンを作ろうと思ったのですが、実際にやってみると、awesome oscillatorの計算長さ(5,14)では速すぎることが判明しました。そこで、長さをパラメータとしてオープンにして、他のデフォルトの計算長を使うことにしました。
デフォルトのパラメータではこんな感じです。
fast/slow設定:6/12 renkoチャート上ではとてもきれいで、"シンプル "な戦略かもしれません。
mladenさん、ありがとうございます。
そして、もう一つのT3バージョン:T3 GMMA
ショート(短い期間-速い)の部分は、ShowLongGmmaパラメータを falseに設定します。長い時間(より長い時間-遅い時間)には、これをtrueに設定し、この2つを組み合わせることで、次のようなものが得られます。