コーディングのヘルプ - ページ 170 1...163164165166167168169170171172173174175176177...786 新しいコメント fareastol 2013.10.15 21:03 #1691 そうですね...私はどれだけ不注意だったのかわかりません。皆さんの適切なアドバイスのおかげで、TB_TotalCountとVACountの数値は正しく、全く妥当なものになりました。しかし、VA High/Lowを見つけるという私の目的はまだ問題で、その部分のコーディングで私のPCは再びクラッシュしてしまいました。今、その理由を理解するために再挑戦しています。 Mladenさん、どうもありがとうございました。あなたのアドバイスは、私に白夜の後の部分的な微笑みを与えてくれます。 fareastol 2013.10.16 00:00 #1692 こんにちは、Mladen。 私の問題の残りをようやく解決したことをお知らせします。もっと改善しようと思っています。 この場合、あなたは私にできる限りの手助けをしてくれませんでしたが、私はそれが自分の足で立って学んでいる人に教える最良の方法であることがわかりました。 ムラデン、心から感謝します。 これからもよろしくお願いします。 ファラストル Mladen Rakic 2013.10.16 03:29 #1693 zilliq: こんにちは、Mladen。相対運動量と絶対運動量を使って成功しました あなたの助けをどうもありがとう、今私はrsxのために運動量を滑らかにする必要があります。 Zilliq Ps:もしそれが誰かの助けになるなら。 //終値での相対モメンタム ind1= close-close[1]です。 // 絶対的な勢い ind2=abs(ind1)です。 ind3=wilderAverage[rs](ind1) ind4=wilderAverage[rs](ind2) ind3=(50*(ind3+ind4))/ind4 ind3を "RSI",0,30,70,100で返します。 Zilliq この投稿を見てみてください :https://www.mql5.com/en/forum/178733/page36 スムージングをどのように行うかの例があります。 zilliq 2013.10.16 05:00 #1694 ありがとうMladen、私はそれを参照してください。 良い一日をお過ごしください、そして、あなたの助けと仕事に感謝します。 Zilliq zilliq 2013.10.16 05:20 #1695 rsi smoother 2というインジケータをよく理解すると、ismoothという関数で ワイルドアベレージを変更するだけなのですね。 そして、あなたは相対的および絶対的な運動量を "ismooth "する。 私はハル平均で同じことを行うが、結果はあなたが私の絵に表示されているのと同じではありません。 なぜかわかりますか、それとも私が間違っているのでしょうか? ありがとうMladen そして、コードRSI14とRSIsmoother 45 //終値での相対運動量 ind1= close-close[1] //絶対的な勢い ind2=abs(ind1) //相対モメンタムをハル平均で滑らかにする v =(2*weightedAverage[round(rs/2)](ind1))-weightedAverage[rs](ind1) ind3 = WeightedAverage[Round(Sqrt(rs))](v) // 絶対運動量をHull平均で滑らかにする v2 =(2*weightedAverage[round(rs/2)](ind2))-weightedAverage[rs](ind2) ind4 = weightedAverage[Round(Sqrt(rs))](v2) ind5=(50*(ind3+ind4))/ind4 ind5を "RSI smooth "として返す 相対モメンタムと絶対モメンタムの両方で、加重平均をT3 Tillsonに置き換えても、同じ問題が発生します。 ファイル: cac_40_index_1.png 37 kb cac_40_index_2.png 47 kb Coding help CCanvasでのカスタム指標とインフォグラフィックス Mladen Rakic 2013.10.16 05:59 #1696 これは、単にスムージングの方法が 異なることによる結果です。スムージングが違えば結果も違う rsiスレッドに投稿されたrsiと同等の結果を得たい場合は、そのインジケータで使用されている種類のスムージングを使用する必要があります。 zilliq 2013.10.16 06:04 #1697 Mladenさん、回答ありがとうございました。 相対運動量と絶対運動量の平滑化が、ハル平均とT3による誇張でこのような結果になるのは奇妙です。 RSIに匹敵する滑らかなRSIを得るためにMT4のismooth関数の 平滑化をどのように動作させるか数式で(可能であれば)説明できますか? どうもありがとうございました、良い一日を Zilliq あなたのMT4コードと私の解釈。 //相対的な勢い double mom = iMA(NULL,0,1,0,MODE_SMA,Price,i)-iMA(NULL,0,1,0,MODE_SMA,Price,i+1); //絶対的な運動量 double moa = MathAbs(mom); //"ismooth関数 "で相対運動量を滑らかにします。 double tmom = iSmooth(mom,Length,SmoothSpeed,i,0)。 //絶対運動量を "ismooth関数 "で滑らかにします。 double tmoa = iSmooth(moa,Length,SmoothSpeed,i,1)。 if (tmoa != 0) //And the ratio 50*(RM+AM)(AM) rsi = MathMax(MathMin((tmom/tmoa+1.0)*50.0,100.00),0.00)。 さもなければ rsi = 50; Coding help how do I usde ノン・ラギング・ツール Mladen Rakic 2013.10.16 06:28 #1698 Zilliq そのインジケータにそのソースコードがありますね。それをprorealtimeに変換するだけです。 zilliq 2013.10.16 07:40 #1699 ouch not really easy for me interpret the ismoothfunction (MT4 は PRT に比べてとても複雑です。) MT4のコードを数学的なコードに変換して、PRTでコーディングしています。 PRTでコーディングする前に、各行の下の異なる行の私の解釈を確認することができます。 ありがとうございました。 Zilliq double iSmooth(double price,int length, double speed, int r, int instanceNo=0) { if (ArrayRange(workSmooth,0)!=Bars) ArrayResize(workSmooth,Bars); instanceNo *= 5; r = Bars-r-1; if(r<=2) { workSmooth[r] = 価格; workSmooth[r] = 価格; return(price); }. // // // // // _______________________________________________________________________ double beta = 0.45*(length-1.0)/(0.45*(length-1.0)+2.0); ベータ値 = 0.45*(長さ-1.0)/(0.45*(長さ-1.0)+2.0) _______________________________________________________________________ double alpha = MathPow(beta,speed)。 alpha = beta^speed _______________________________________________________________________ workSmooth[r] = price+alpha*(workSmooth[r-1]-price); Filt0 = price+alpha*(Filt0[1]-price); _______________________________________________________________________ workSmooth[r] = (price - workSmooth[r])*(1-alpha)+alpha*workSmooth[r-1]; Filt1 = (価格 - Filt0 )*(1-alpha)+alpha*Filt1[1]. _______________________________________________________________________ workSmooth[r] = workSmooth[r] + workSmooth[r]; フィルタ2 = フィルト0 + フィルト1 _______________________________________________________________________ workSmooth[r] = (workSmooth[r] - workSmooth[r-1])*MathPow(1.0-alpha,2) + MathPow(alpha,2)*workSmooth[r-1]; Filt3=Filt2-Filt4[1]*(1-alpha)*(1-alpha)+alpha*alpha*Filt3[1] _______________________________________________________________________ workSmooth[r] = workSmooth[r] + workSmooth[r-1] です。 Filt4=Filt3+Filt4[1] です。 _______________________________________________________________________ return(workSmooth[r])とする。 return Filt4 Coding help RSI of Moving Average エリート指標 :) Mladen Rakic 2013.10.16 07:45 #1700 zilliq: (MT4はPRTに比べてとても複雑です)MT4のコードをPRTでコーディングするために数学的なコードで翻訳しようとしています。 PRTでコーディングする前に、各行の下にある異なる行の私の解釈を確認することができます。 Mladenさん、ありがとうございます。 Zilliq double iSmooth(double price,int length, double speed, int r, int instanceNo=0) { if (ArrayRange(workSmooth,0)!=Bars) ArrayResize(workSmooth,Bars); instanceNo *= 5; r = Bars-r-1; if(r<=2) { workSmooth[r] = 価格; workSmooth[r] = 価格; return(price); }. // // // // // _______________________________________________________________________ double beta = 0.45*(length-1.0)/(0.45*(length-1.0)+2.0); ベータ値 = 0.45*(長さ-1.0)/(0.45*(長さ-1.0)+2.0) _______________________________________________________________________ double alpha = MathPow(beta,speed)。 alpha = beta^speed _______________________________________________________________________ workSmooth[r] = price+alpha*(workSmooth[r-1]-price); Filt0 = price+alpha*(Filt0[1]-price); _______________________________________________________________________ workSmooth[r] = (price - workSmooth[r])*(1-alpha)+alpha*workSmooth[r-1]; Filt1 = (価格 - Filt0 )*(1-alpha)+alpha*Filt1[1]. _______________________________________________________________________ workSmooth[r] = workSmooth[r] + workSmooth[r]; フィルタ2 = フィルト0 + フィルト1 _______________________________________________________________________ workSmooth[r] = (workSmooth[r] - workSmooth[r-1])*MathPow(1.0-alpha,2) + MathPow(alpha,2)*workSmooth[r-1]; Filt3=Filt2-Filt4[1]*(1-alpha)*(1-alpha)+alpha*alpha*Filt3[1] _______________________________________________________________________ workSmooth[r] = workSmooth[r] + workSmooth[r-1] です。 Filt4=Filt3+Filt4[1] です。 _______________________________________________________________________ return(workSmooth[r])とします。 Return Filt4 私が見る限り、それはそれであるべきですが、私はprorealtimeで作業したことがないことを心に留めておいてください。 1...163164165166167168169170171172173174175176177...786 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そうですね...私はどれだけ不注意だったのかわかりません。皆さんの適切なアドバイスのおかげで、TB_TotalCountとVACountの数値は正しく、全く妥当なものになりました。しかし、VA High/Lowを見つけるという私の目的はまだ問題で、その部分のコーディングで私のPCは再びクラッシュしてしまいました。今、その理由を理解するために再挑戦しています。
Mladenさん、どうもありがとうございました。あなたのアドバイスは、私に白夜の後の部分的な微笑みを与えてくれます。![](https://c.mql5.com/forextsd/smiles/smile.png)
こんにちは、Mladen。
私の問題の残りをようやく解決したことをお知らせします。もっと改善しようと思っています。
この場合、あなたは私にできる限りの手助けをしてくれませんでしたが、私はそれが自分の足で立って学んでいる人に教える最良の方法であることがわかりました。
ムラデン、心から感謝します。
これからもよろしくお願いします。
ファラストル
こんにちは、Mladen。
相対運動量と絶対運動量を使って成功しました![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
あなたの助けをどうもありがとう、今私はrsxのために運動量を滑らかにする必要があります。
Zilliq
Ps:もしそれが誰かの助けになるなら。
//終値での相対モメンタム
ind1= close-close[1]です。
// 絶対的な勢い
ind2=abs(ind1)です。
ind3=wilderAverage[rs](ind1)
ind4=wilderAverage[rs](ind2)
ind3=(50*(ind3+ind4))/ind4
ind3を "RSI",0,30,70,100で返します。Zilliq
この投稿を見てみてください :https://www.mql5.com/en/forum/178733/page36
スムージングをどのように行うかの例があります。
ありがとうMladen、私はそれを参照してください。
良い一日をお過ごしください、そして、あなたの助けと仕事に感謝します。![](https://c.mql5.com/forextsd/smiles/emoticon01.png)
Zilliq
rsi smoother 2というインジケータをよく理解すると、ismoothという関数で ワイルドアベレージを変更するだけなのですね。
そして、あなたは相対的および絶対的な運動量を "ismooth "する。
私はハル平均で同じことを行うが、結果はあなたが私の絵に表示されているのと同じではありません。
なぜかわかりますか、それとも私が間違っているのでしょうか?
ありがとうMladen
そして、コードRSI14とRSIsmoother 45
//終値での相対運動量
ind1= close-close[1]
//絶対的な勢い
ind2=abs(ind1)
//相対モメンタムをハル平均で滑らかにする
v =(2*weightedAverage[round(rs/2)](ind1))-weightedAverage[rs](ind1)
ind3 = WeightedAverage[Round(Sqrt(rs))](v)
// 絶対運動量をHull平均で滑らかにする
v2 =(2*weightedAverage[round(rs/2)](ind2))-weightedAverage[rs](ind2)
ind4 = weightedAverage[Round(Sqrt(rs))](v2)
ind5=(50*(ind3+ind4))/ind4
ind5を "RSI smooth "として返す
相対モメンタムと絶対モメンタムの両方で、加重平均をT3 Tillsonに置き換えても、同じ問題が発生します。
これは、単にスムージングの方法が 異なることによる結果です。スムージングが違えば結果も違う
rsiスレッドに投稿されたrsiと同等の結果を得たい場合は、そのインジケータで使用されている種類のスムージングを使用する必要があります。
Mladenさん、回答ありがとうございました。![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
相対運動量と絶対運動量の平滑化が、ハル平均とT3による誇張でこのような結果になるのは奇妙です。
RSIに匹敵する滑らかなRSIを得るためにMT4のismooth関数の 平滑化をどのように動作させるか数式で(可能であれば)説明できますか?
どうもありがとうございました、良い一日を
Zilliq
あなたのMT4コードと私の解釈。
//相対的な勢い
double mom = iMA(NULL,0,1,0,MODE_SMA,Price,i)-iMA(NULL,0,1,0,MODE_SMA,Price,i+1);
//絶対的な運動量
double moa = MathAbs(mom);
//"ismooth関数 "で相対運動量を滑らかにします。
double tmom = iSmooth(mom,Length,SmoothSpeed,i,0)。
//絶対運動量を "ismooth関数 "で滑らかにします。
double tmoa = iSmooth(moa,Length,SmoothSpeed,i,1)。
if (tmoa != 0)
//And the ratio 50*(RM+AM)(AM)
rsi = MathMax(MathMin((tmom/tmoa+1.0)*50.0,100.00),0.00)。
さもなければ rsi = 50;
Zilliq
そのインジケータにそのソースコードがありますね。それをprorealtimeに変換するだけです。
ouch not really easy for me interpret the ismoothfunction
(MT4 は PRT に比べてとても複雑です。)
MT4のコードを数学的なコードに変換して、PRTでコーディングしています。
PRTでコーディングする前に、各行の下の異なる行の私の解釈を確認することができます。
ありがとうございました。
Zilliq
double iSmooth(double price,int length, double speed, int r, int instanceNo=0)
{
if (ArrayRange(workSmooth,0)!=Bars) ArrayResize(workSmooth,Bars); instanceNo *= 5; r = Bars-r-1;
if(r<=2) { workSmooth[r] = 価格; workSmooth[r] = 価格; return(price); }.
//
//
//
//
//
_______________________________________________________________________
double beta = 0.45*(length-1.0)/(0.45*(length-1.0)+2.0);
ベータ値 = 0.45*(長さ-1.0)/(0.45*(長さ-1.0)+2.0)
_______________________________________________________________________
double alpha = MathPow(beta,speed)。
alpha = beta^speed
_______________________________________________________________________
workSmooth[r] = price+alpha*(workSmooth[r-1]-price);
Filt0 = price+alpha*(Filt0[1]-price);
_______________________________________________________________________
workSmooth[r] = (price - workSmooth[r])*(1-alpha)+alpha*workSmooth[r-1];
Filt1 = (価格 - Filt0 )*(1-alpha)+alpha*Filt1[1].
_______________________________________________________________________
workSmooth[r] = workSmooth[r] + workSmooth[r];
フィルタ2 = フィルト0 + フィルト1
_______________________________________________________________________
workSmooth[r] = (workSmooth[r] - workSmooth[r-1])*MathPow(1.0-alpha,2) + MathPow(alpha,2)*workSmooth[r-1];
Filt3=Filt2-Filt4[1]*(1-alpha)*(1-alpha)+alpha*alpha*Filt3[1]
_______________________________________________________________________
workSmooth[r] = workSmooth[r] + workSmooth[r-1] です。
Filt4=Filt3+Filt4[1] です。
_______________________________________________________________________
return(workSmooth[r])とする。
return Filt4
MT4のコードをPRTでコーディングするために数学的なコードで翻訳しようとしています。
PRTでコーディングする前に、各行の下にある異なる行の私の解釈を確認することができます。
Mladenさん、ありがとうございます。
Zilliq
double iSmooth(double price,int length, double speed, int r, int instanceNo=0)
{
if (ArrayRange(workSmooth,0)!=Bars) ArrayResize(workSmooth,Bars); instanceNo *= 5; r = Bars-r-1;
if(r<=2) { workSmooth[r] = 価格; workSmooth[r] = 価格; return(price); }.
//
//
//
//
//
_______________________________________________________________________
double beta = 0.45*(length-1.0)/(0.45*(length-1.0)+2.0);
ベータ値 = 0.45*(長さ-1.0)/(0.45*(長さ-1.0)+2.0)
_______________________________________________________________________
double alpha = MathPow(beta,speed)。
alpha = beta^speed
_______________________________________________________________________
workSmooth[r] = price+alpha*(workSmooth[r-1]-price);
Filt0 = price+alpha*(Filt0[1]-price);
_______________________________________________________________________
workSmooth[r] = (price - workSmooth[r])*(1-alpha)+alpha*workSmooth[r-1];
Filt1 = (価格 - Filt0 )*(1-alpha)+alpha*Filt1[1].
_______________________________________________________________________
workSmooth[r] = workSmooth[r] + workSmooth[r];
フィルタ2 = フィルト0 + フィルト1
_______________________________________________________________________
workSmooth[r] = (workSmooth[r] - workSmooth[r-1])*MathPow(1.0-alpha,2) + MathPow(alpha,2)*workSmooth[r-1];
Filt3=Filt2-Filt4[1]*(1-alpha)*(1-alpha)+alpha*alpha*Filt3[1]
_______________________________________________________________________
workSmooth[r] = workSmooth[r] + workSmooth[r-1] です。
Filt4=Filt3+Filt4[1] です。
_______________________________________________________________________
return(workSmooth[r])とします。
Return Filt4私が見る限り、それはそれであるべきですが、私はprorealtimeで作業したことがないことを心に留めておいてください。