コーディングの方法は? - ページ 294 1...287288289290291292293294295296297298299300301...347 新しいコメント 削除済み 2012.05.02 10:24 #2931 オーダー送信(シンボル...クエリ) int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE); 私の質問はこれです。 symbol() の部分を eurusd に変えて、買いスクリプトを実行すると、どのチャートからでも eurusd が買われるようにできるでしょうか? というようなことです。 int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE) のような感じです。 感謝 Mladen Rakic 2012.05.02 12:44 #2932 ... はい、できます ただ、ケーシングには注意してください。通話はこのようになります。 int ticket=OrderSend("EURUSD",OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,CLR_NONE); al_shore: int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);質問です。 symbol() の部分を変更して、eurusdと書いて、買いスクリプトを実行すると、どのチャートからでもeurusdが買われるようにできないでしょうか? というようなことです。 int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE); サンクス kemal44 2012.05.02 20:59 #2933 EA doesnt Work 親愛なる友人。 私は外国為替の初心者です、それはコンパイルするときにエラーを出さなかったが、私はそれを動作させませんでした、それの何が間違っているのかで私を助けてください誰か? 事前にありがとうございます ファイル: test_ea.mq4 128 kb Mladen Rakic 2012.05.03 03:30 #2934 ... インジケータからEAにコードをコピーして、それが動作することを期待することはできません(特に、シンプルなコードで知られていないNikolay Kostisinのインジケータ)。 まずは、iCustom()コールで インジケータを使用し、EAに売買ロジックを残す方が、より簡単にEAを書くことができます。 kemal44: 親愛なる友人。 私は外国為替の初心者です、それはコンパイル時にエラーを与えなかったが、私はそれを動作させませんでした、それの何が間違っているのか、誰かが私を助けてください? 事前に感謝 ymkoh 2012.05.16 01:19 #2935 ボラティリティクオリティEAのコーディング方法 はじめまして。 メタトレーダーEA初心者です。VQインジケータをEAに組み込んで、M15タイムフレームで取引し、Volatility Qualityインジケータで選択したタイムフレームで売買トリガーをかけるにはどうしたらよいでしょうか? ありがとうございます。 ファイル: vq7.mq4 8 kb MrPip 2012.05.16 10:34 #2936 また、Ask を MarketInfo("EURUSD", MODE_ASK) に変更する必要があります。 さもなければ、取引は成功しません。Askはチャートのシンボルに対するものです。 また、ブローカーによっては、シンボル名の前後に「EURUSDm」のように他の文字を追加する場合がありますので、ご注意ください。 EURUSDm "のようになります。 ロバート al_shore: int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);私の質問はこれです。 買いスクリプトを実行すると、どのチャートからでもユーロドルを買うことができるように、シンボル()の 部分をユーロドルに変更することはできますか? というようなことです。 int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE); サンクス Mladen Rakic 2012.05.16 11:30 #2937 ... ymkoh このスレッドをチェック :https://www.mql5.com/en/forum/general ボラティリティクオリティを使ったEAが結構ありますね。 ymkoh: よろしくお願いします。私はメタトレーダーEA初心者です。VQインジケータをEAに組み込んで、M15タイムフレームで取引し、Volatility Qualityインジケータで選択したタイムフレームで売買トリガーをかけるにはどうしたらよいでしょうか? ありがとうございます。 ymkoh 2012.05.16 15:06 #2938 mladen: ymkohこのスレッドをチェック :https://www.mql5.com/en/forum/general ボラティリティクオリティを利用したEAのバージョンはかなりあります。 情報をありがとうございます。 私はそれらのほとんどを試したが、どれも動作することはできません。 例:- EA Trading TF H1 VQ input 240. それは唯一の取引TF H1 VQ入力0デフォルトで動作します。 添付のスクリーンショットは、VQ指標H4時間枠によってトリガTF H1の買いシグナルを取引する例を示しています。(EAは添付していません。) vq7.mq4 ファイル: vq7.mq4 8 kb audusd_h1_buysell__by_vq_h4.png 90 kb chenairbin 2012.05.21 03:16 #2939 ハースト指数に関するこの種のインジケータ こんにちは、どなたか助けてください!私はハースト指数に関するこの種のインジケータが欲しいのです。ありがとうございます。 Hurst Exponentの値は0から1までの範囲です。 * Hurst Exponentの値Hが0.5に近い場合、ランダムウォーク(ブラウン時系列)であることを示します。ランダムウォークでは、どの要素も将来の要素との間に相関はなく、将来のリターン値が上昇または下降する確率は50%です。このタイプの系列は予測が困難である。 * 反永続的な振る舞い」をする時系列には、0~0.5のハースト指数値Hが存在します。これは、増加の後に減少する(または減少の後に増加する)傾向があることを意味する。この挙動は「平均回帰」と呼ばれることもあり、将来の値がより長い期間の平均値に戻る傾向があることを意味します。この平均回帰の強さは、Hが0に近づくにつれて大きくなる。 * Hurst Exponentの値Hが0.5から1の間は「持続的な挙動」、つまり時系列がトレンドであることを示しています。時間ステップ[t-1]から[t]への増加がある場合、[t]から[t+1]への増加もおそらくあるはずです。同じことが減少の場合にも当てはまり、減少が減少に続く傾向があります。H値が大きければ大きいほど,その傾向は強くなる.このタイプの系列は、他の2つのカテゴリーに分類される系列よりも予測しやすい。 計算方法は以下の通りです。 ステップ_A、X=MathLog(Close/Close) {1つのR/SからHの値を求める。 Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ]。 ステップ2、A(0)=X(0)-E A(1) = X(1) - E A(2) = X(2) - E ... A(n-1) = X(n-1) - E ステップ3、SUM(0)=A(0) SUM(1) = A(0)+A(1) sum(2) = a(0)+a(1) + a(2) ... SUM(n-1) = A(0)+A(1) + A(2) + ...+ A(n-1) Step4、R=最大(SUM,n)- 最小(SUM,n) Step5、H = log(R/S)/log(n/2) // { X(0),X(1),X(2),...} の集合の標準偏差をLet'sとする。X(n-1)} の集合の標準偏差とする。 } Step_B、{ X(i),X(i+1),X(i+2),... }の集合からHを計算する。X(i+n-1)}の集合からHを計算する。 Step_C、H_SMAを計算し、それを滑らかにする,もしH_SMA=0.5なら警告する。 codは以下の通りです。 //+------------------------------------------------------------------+ //| #HURST.mq4 /// chenairbin.| ||MetaTrader 4 Trading Platform / MetaQuotes Software Corp.| //+------------------------------------------------------------------+ #property copyright "chenairbin."(著作権)。 #property link "http://www.metaquotes.net" #property indicator_separate_window(インジケーターセパレートウィンドウ #property indicator_minimum 0 #property indicator_maximum 1 (インジケーター最大値1) #property indicator_buffers 7 (インジケーターバッファー7) #property indicator_color7 黄色 extern int n=21,S_EMA=8; extern double Natural=0.5; double X[],E[],S[],A[],SUM[],H[],C[]; int init() { IndicatorBuffers(7); SetIndexBuffer(0,X).SetIndexBuffer(0,X)です。 SetIndexBuffer(1,E).SetIndexBuffer(0,X)を設定します。 SetIndexBuffer(2,S).SetIndexBuffer(2,S)を設定します。 SetIndexBuffer(3,A)。 SetIndexBuffer(4,SUM)。 SetIndexBuffer(5,H)を設定します。 SetIndexStyle(6,DRAW_LINE)を設定します。 SetIndexBuffer(6,C)を設定します。 return(0); } int start() { int i; int limit; int counted_bars=IndicatorCounted(); if(counted_bars<0)リターン(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for (i=limit-1;i>=0;i--) { X= MathLog(Close/Close)。 } for (i=limit-1;i>=0;i--) { E=iMAOnArray(X,0,n,0,MODE_EMA,i)とします。 S=iStdDevOnArray(X,0,n,0,MODE_EMA,i); } for (i=limit-1;i>=0;i--) { A=X-E; } for (i=limit-1;i>=0;i--)の場合。 { for (int j=0;j<n;j--) { for (i=limit-1;0<=i<=j;i--)の場合。 { double B=0,SUM[]; B=B+A; SUM[j]=B。 } } H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2)); } for (i=limit-1;i>=0;i--) { C=iMAOnArray(H,0,S_EMA,0,MODE_EMA,i); } return(0); } //----------------------------------------------------------- How to code? グッピー多重移動平均 コーディングのヘルプ Mladen Rakic 2012.05.21 04:17 #2940 この部分: for (i=limit-1;i>=0;i--) { for (int j=0;j<n;j--) { for (i=limit-1;0<=i<=j;i--) // you are alrady using "i" variable in in the outer loop { double B=0,SUM[]; // Sum is an un-initialized array and shoulde be created out of this loop. B=B+A; SUM[j]=B; } } H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2); } エラーのある箇所をコメントしました。記述がないと、そのコードで何を実現しようとしているのかがわからないので、変更することができません。 chenairbin: ハースト指数に関するこの種のインジケータが欲しいのですが、コンパイラでコードは正常にプログラムされますが、画像がありません。ありがとうございます。Hurst Exponent の値は 0 から 1 までの範囲です。 * Hurst Exponentの値Hが0.5に近い場合は、ランダムウォーク(ブラウン時系列)であることを示します。ランダムウォークでは、どの要素も将来の要素との間に相関はなく、将来のリターン値は50%の確率で上昇または下降する。このタイプの系列は予測が困難である。 * 反永続的な振る舞い」をする時系列には、0~0.5のハースト指数値Hが存在します。これは、増加の後に減少する(または減少の後に増加する)傾向があることを意味する。この挙動は「平均回帰」と呼ばれることもあり、将来の値がより長い期間の平均値に戻る傾向があることを意味します。この平均回帰の強さは、Hが0に近づくにつれて大きくなる。 * Hurst Exponentの値Hが0.5から1の間は「持続的な挙動」、つまり時系列がトレンドであることを示しています。時間ステップ[t-1]から[t]への増加がある場合、[t]から[t+1]への増加もおそらくあるはずです。同じことが減少の場合にも当てはまり、減少が減少に続く傾向があります。H値が大きければ大きいほど,その傾向は強くなる.このタイプの系列は、他の2つのカテゴリーに分類される系列よりも予測しやすい。 計算方法は以下の通りです。 ステップ_A、X=MathLog(Close/Close) {1つのR/SからHの値を求める。 Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ]。 ステップ2、A(0)=X(0)-E A(1) = X(1) - E A(2) = X(2) - E ... A(n-1) = X(n-1) - E ステップ3、SUM(0)=A(0) SUM(1) = A(0)+A(1) sum(2) = a(0)+a(1) + a(2) ... SUM(n-1) = A(0)+A(1) + A(2) + ...+ A(n-1) Step4、R=最大(SUM,n)- 最小(SUM,n) Step5、H = log(R/S)/log(n/2) // { X(0),X(1),X(2),...} の集合の標準偏差をLet'sとする。X(n-1)} の集合の標準偏差とする。 } Step_B、{ X(i),X(i+1),X(i+2),... }の集合からHを計算する。X(i+n-1)}の集合からHを計算する。 Step_C、H_SMAを計算し、それを滑らかにする,もしH_SMA=0.5なら警告する。 codは以下の通りです。 //+------------------------------------------------------------------+ //| #HURST.mq4 /// chenairbin.| ||MetaTrader 4 Trading Platform / MetaQuotes Software Corp.| //+------------------------------------------------------------------+ #property copyright "chenairbin."(著作権)。 #property link "http://www.metaquotes.net" #property indicator_separate_window(インジケーターセパレートウィンドウ #property indicator_minimum 0 #property indicator_maximum 1 (インジケーター最大値1) #property indicator_buffers 7 (インジケーターバッファー7) #property indicator_color7 黄色 extern int n=21,S_EMA=8; extern double Natural=0.5; double X[],E[],S[],A[],SUM[],H[],C[]; int init() { IndicatorBuffers(7); SetIndexBuffer(0,X).SetIndexBuffer(0,X)です。 SetIndexBuffer(1,E).SetIndexBuffer(0,X)を設定します。 SetIndexBuffer(2,S).SetIndexBuffer(2,S)を設定します。 SetIndexBuffer(3,A)。 SetIndexBuffer(4,SUM)。 SetIndexBuffer(5,H)を設定します。 SetIndexStyle(6,DRAW_LINE)を設定します。 SetIndexBuffer(6,C)を設定します。 return(0); } int start() { int i; int limit; int counted_bars=IndicatorCounted(); if(counted_bars<0)リターン(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for (i=limit-1;i>=0;i--) { X= MathLog(Close/Close)。 } for (i=limit-1;i>=0;i--) { E=iMAOnArray(X,0,n,0,MODE_EMA,i)とします。 S=iStdDevOnArray(X,0,n,0,MODE_EMA,i); } for (i=limit-1;i>=0;i--) { A=X-E; } for (i=limit-1;i>=0;i--)の場合。 { for (int j=0;j<n;j--) { for (i=limit-1;0<=i<=j;i--)の場合。 { double B=0,SUM[]; B=B+A; SUM[j]=B。 } } H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2)); } for (i=limit-1;i>=0;i--) { C=iMAOnArray(H,0,S_EMA,0,MODE_EMA,i); } return(0); } //----------------------------------------------------------- How to code? Array initialisation Any rookie question, so 1...287288289290291292293294295296297298299300301...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
オーダー送信(シンボル...クエリ)
int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);
私の質問はこれです。
symbol() の部分を eurusd に変えて、買いスクリプトを実行すると、どのチャートからでも eurusd が買われるようにできるでしょうか?
というようなことです。
int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE) のような感じです。
感謝
...
はい、できます
ただ、ケーシングには注意してください。通話はこのようになります。
int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);
質問です。
symbol() の部分を変更して、eurusdと書いて、買いスクリプトを実行すると、どのチャートからでもeurusdが買われるようにできないでしょうか?
というようなことです。
int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);
サンクスEA doesnt Work![](https://c.mql5.com/forextsd/smiles/smile.png)
親愛なる友人。
私は外国為替の初心者です、それはコンパイルするときにエラーを出さなかったが、私はそれを動作させませんでした、それの何が間違っているのかで私を助けてください誰か?
事前にありがとうございます
...
インジケータからEAにコードをコピーして、それが動作することを期待することはできません(特に、シンプルなコードで知られていないNikolay Kostisinのインジケータ)。
まずは、iCustom()コールで インジケータを使用し、EAに売買ロジックを残す方が、より簡単にEAを書くことができます。
親愛なる友人。
私は外国為替の初心者です、それはコンパイル時にエラーを与えなかったが、私はそれを動作させませんでした、それの何が間違っているのか、誰かが私を助けてください?
事前に感謝ボラティリティクオリティEAのコーディング方法
はじめまして。
メタトレーダーEA初心者です。VQインジケータをEAに組み込んで、M15タイムフレームで取引し、Volatility Qualityインジケータで選択したタイムフレームで売買トリガーをかけるにはどうしたらよいでしょうか?
ありがとうございます。
また、Ask を MarketInfo("EURUSD", MODE_ASK) に変更する必要があります。
さもなければ、取引は成功しません。Askはチャートのシンボルに対するものです。
また、ブローカーによっては、シンボル名の前後に「EURUSDm」のように他の文字を追加する場合がありますので、ご注意ください。
EURUSDm "のようになります。
ロバート
int ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);
私の質問はこれです。
買いスクリプトを実行すると、どのチャートからでもユーロドルを買うことができるように、シンボル()の 部分をユーロドルに変更することはできますか?
というようなことです。
int ticket=OrderSend(eurusd,OP_BUY,1.0,Ask,3,0,0, "expert comment",255,0,CLR_NONE);
サンクス...
ymkoh
このスレッドをチェック :https://www.mql5.com/en/forum/general
ボラティリティクオリティを使ったEAが結構ありますね。
よろしくお願いします。
私はメタトレーダーEA初心者です。VQインジケータをEAに組み込んで、M15タイムフレームで取引し、Volatility Qualityインジケータで選択したタイムフレームで売買トリガーをかけるにはどうしたらよいでしょうか?
ありがとうございます。ymkoh
このスレッドをチェック :https://www.mql5.com/en/forum/general
ボラティリティクオリティを利用したEAのバージョンはかなりあります。情報をありがとうございます。
私はそれらのほとんどを試したが、どれも動作することはできません。
例:- EA Trading TF H1 VQ input 240.
それは唯一の取引TF H1 VQ入力0デフォルトで動作します。
添付のスクリーンショットは、VQ指標H4時間枠によってトリガTF H1の買いシグナルを取引する例を示しています。(EAは添付していません。)
ハースト指数に関するこの種のインジケータ
こんにちは、どなたか助けてください!私はハースト指数に関するこの種のインジケータが欲しいのです。ありがとうございます。
Hurst Exponentの値は0から1までの範囲です。
* Hurst Exponentの値Hが0.5に近い場合、ランダムウォーク(ブラウン時系列)であることを示します。ランダムウォークでは、どの要素も将来の要素との間に相関はなく、将来のリターン値が上昇または下降する確率は50%です。このタイプの系列は予測が困難である。
* 反永続的な振る舞い」をする時系列には、0~0.5のハースト指数値Hが存在します。これは、増加の後に減少する(または減少の後に増加する)傾向があることを意味する。この挙動は「平均回帰」と呼ばれることもあり、将来の値がより長い期間の平均値に戻る傾向があることを意味します。この平均回帰の強さは、Hが0に近づくにつれて大きくなる。
* Hurst Exponentの値Hが0.5から1の間は「持続的な挙動」、つまり時系列がトレンドであることを示しています。時間ステップ[t-1]から[t]への増加がある場合、[t]から[t+1]への増加もおそらくあるはずです。同じことが減少の場合にも当てはまり、減少が減少に続く傾向があります。H値が大きければ大きいほど,その傾向は強くなる.このタイプの系列は、他の2つのカテゴリーに分類される系列よりも予測しやすい。
計算方法は以下の通りです。
ステップ_A、X=MathLog(Close/Close)
{1つのR/SからHの値を求める。
Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ]。
ステップ2、A(0)=X(0)-E
A(1) = X(1) - E
A(2) = X(2) - E
...
A(n-1) = X(n-1) - E
ステップ3、SUM(0)=A(0)
SUM(1) = A(0)+A(1)
sum(2) = a(0)+a(1) + a(2)
...
SUM(n-1) = A(0)+A(1) + A(2) + ...+ A(n-1)
Step4、R=最大(SUM,n)- 最小(SUM,n)
Step5、H = log(R/S)/log(n/2) // { X(0),X(1),X(2),...} の集合の標準偏差をLet'sとする。X(n-1)} の集合の標準偏差とする。
}
Step_B、{ X(i),X(i+1),X(i+2),... }の集合からHを計算する。X(i+n-1)}の集合からHを計算する。
Step_C、H_SMAを計算し、それを滑らかにする,もしH_SMA=0.5なら警告する。
codは以下の通りです。
//+------------------------------------------------------------------+
//| #HURST.mq4
/// chenairbin.|
||MetaTrader 4 Trading Platform / MetaQuotes Software Corp.|
//+------------------------------------------------------------------+
#property copyright "chenairbin."(著作権)。
#property link "http://www.metaquotes.net"
#property indicator_separate_window(インジケーターセパレートウィンドウ
#property indicator_minimum 0
#property indicator_maximum 1 (インジケーター最大値1)
#property indicator_buffers 7 (インジケーターバッファー7)
#property indicator_color7 黄色
extern int n=21,S_EMA=8;
extern double Natural=0.5;
double X[],E[],S[],A[],SUM[],H[],C[];
int init()
{
IndicatorBuffers(7);
SetIndexBuffer(0,X).SetIndexBuffer(0,X)です。
SetIndexBuffer(1,E).SetIndexBuffer(0,X)を設定します。
SetIndexBuffer(2,S).SetIndexBuffer(2,S)を設定します。
SetIndexBuffer(3,A)。
SetIndexBuffer(4,SUM)。
SetIndexBuffer(5,H)を設定します。
SetIndexStyle(6,DRAW_LINE)を設定します。
SetIndexBuffer(6,C)を設定します。
return(0);
}
int start()
{
int i;
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0)リターン(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for (i=limit-1;i>=0;i--)
{
X= MathLog(Close/Close)。
}
for (i=limit-1;i>=0;i--)
{
E=iMAOnArray(X,0,n,0,MODE_EMA,i)とします。
S=iStdDevOnArray(X,0,n,0,MODE_EMA,i);
}
for (i=limit-1;i>=0;i--)
{
A=X-E;
}
for (i=limit-1;i>=0;i--)の場合。
{
for (int j=0;j<n;j--)
{
for (i=limit-1;0<=i<=j;i--)の場合。
{
double B=0,SUM[];
B=B+A;
SUM[j]=B。
}
}
H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2));
}
for (i=limit-1;i>=0;i--)
{
C=iMAOnArray(H,0,S_EMA,0,MODE_EMA,i);
}
return(0);
}
//-----------------------------------------------------------
この部分:
for (i=limit-1;i>=0;i--)
{
for (int j=0;j<n;j--)
{
for (i=limit-1;0<=i<=j;i--) // you are alrady using "i" variable in in the outer loop
{
double B=0,SUM[]; // Sum is an un-initialized array and shoulde be created out of this loop.
B=B+A;
SUM[j]=B;
}
}
H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2);
}エラーのある箇所をコメントしました。記述がないと、そのコードで何を実現しようとしているのかがわからないので、変更することができません。
ハースト指数に関するこの種のインジケータが欲しいのですが、コンパイラでコードは正常にプログラムされますが、画像がありません。ありがとうございます。
Hurst Exponent の値は 0 から 1 までの範囲です。
* Hurst Exponentの値Hが0.5に近い場合は、ランダムウォーク(ブラウン時系列)であることを示します。ランダムウォークでは、どの要素も将来の要素との間に相関はなく、将来のリターン値は50%の確率で上昇または下降する。このタイプの系列は予測が困難である。
* 反永続的な振る舞い」をする時系列には、0~0.5のハースト指数値Hが存在します。これは、増加の後に減少する(または減少の後に増加する)傾向があることを意味する。この挙動は「平均回帰」と呼ばれることもあり、将来の値がより長い期間の平均値に戻る傾向があることを意味します。この平均回帰の強さは、Hが0に近づくにつれて大きくなる。
* Hurst Exponentの値Hが0.5から1の間は「持続的な挙動」、つまり時系列がトレンドであることを示しています。時間ステップ[t-1]から[t]への増加がある場合、[t]から[t+1]への増加もおそらくあるはずです。同じことが減少の場合にも当てはまり、減少が減少に続く傾向があります。H値が大きければ大きいほど,その傾向は強くなる.このタイプの系列は、他の2つのカテゴリーに分類される系列よりも予測しやすい。
計算方法は以下の通りです。
ステップ_A、X=MathLog(Close/Close)
{1つのR/SからHの値を求める。
Step1、E = (1/n)*[X(0)+X(1)+X(2)+...+X(n-1) ]。
ステップ2、A(0)=X(0)-E
A(1) = X(1) - E
A(2) = X(2) - E
...
A(n-1) = X(n-1) - E
ステップ3、SUM(0)=A(0)
SUM(1) = A(0)+A(1)
sum(2) = a(0)+a(1) + a(2)
...
SUM(n-1) = A(0)+A(1) + A(2) + ...+ A(n-1)
Step4、R=最大(SUM,n)- 最小(SUM,n)
Step5、H = log(R/S)/log(n/2) // { X(0),X(1),X(2),...} の集合の標準偏差をLet'sとする。X(n-1)} の集合の標準偏差とする。
}
Step_B、{ X(i),X(i+1),X(i+2),... }の集合からHを計算する。X(i+n-1)}の集合からHを計算する。
Step_C、H_SMAを計算し、それを滑らかにする,もしH_SMA=0.5なら警告する。
codは以下の通りです。
//+------------------------------------------------------------------+
//| #HURST.mq4
/// chenairbin.|
||MetaTrader 4 Trading Platform / MetaQuotes Software Corp.|
//+------------------------------------------------------------------+
#property copyright "chenairbin."(著作権)。
#property link "http://www.metaquotes.net"
#property indicator_separate_window(インジケーターセパレートウィンドウ
#property indicator_minimum 0
#property indicator_maximum 1 (インジケーター最大値1)
#property indicator_buffers 7 (インジケーターバッファー7)
#property indicator_color7 黄色
extern int n=21,S_EMA=8;
extern double Natural=0.5;
double X[],E[],S[],A[],SUM[],H[],C[];
int init()
{
IndicatorBuffers(7);
SetIndexBuffer(0,X).SetIndexBuffer(0,X)です。
SetIndexBuffer(1,E).SetIndexBuffer(0,X)を設定します。
SetIndexBuffer(2,S).SetIndexBuffer(2,S)を設定します。
SetIndexBuffer(3,A)。
SetIndexBuffer(4,SUM)。
SetIndexBuffer(5,H)を設定します。
SetIndexStyle(6,DRAW_LINE)を設定します。
SetIndexBuffer(6,C)を設定します。
return(0);
}
int start()
{
int i;
int limit;
int counted_bars=IndicatorCounted();
if(counted_bars<0)リターン(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for (i=limit-1;i>=0;i--)
{
X= MathLog(Close/Close)。
}
for (i=limit-1;i>=0;i--)
{
E=iMAOnArray(X,0,n,0,MODE_EMA,i)とします。
S=iStdDevOnArray(X,0,n,0,MODE_EMA,i);
}
for (i=limit-1;i>=0;i--)
{
A=X-E;
}
for (i=limit-1;i>=0;i--)の場合。
{
for (int j=0;j<n;j--)
{
for (i=limit-1;0<=i<=j;i--)の場合。
{
double B=0,SUM[];
B=B+A;
SUM[j]=B。
}
}
H=MathLog((SUM[ArrayMaximum(SUM,n,0)]-SUM[ArrayMinimum(SUM,n,0)])/S)/MathLog(n/2));
}
for (i=limit-1;i>=0;i--)
{
C=iMAOnArray(H,0,S_EMA,0,MODE_EMA,i);
}
return(0);
}
//-----------------------------------------------------------