私は移動平均コードで問題を見ることができません
Results 1 to 2 of 2

Thread: 私は移動平均コードで問題を見ることができません

  1. #1
    1添付ファイル挿入されたコード#property indior_chart_window/ ------------------------------------- ----------------------------- /|カスタム内部初期化関数|/ ----------------------------------------------- ------------------- extern int HMA_Period = 21; extern intヒストリ= 500;ダブルhma#91;#93 ;; int init(){IndiorBuffers(1); SetIndexBuffer(0、hma); SetIndexStyle(0、DRAW_LINE、STYLE_SOLID、2); return(0); }/ ---------------------------------------------- -------------------- /|カスタムインフォーマル初期化機能|/ ----------------------------------------------- ------------------- int deinit(){//----/---- return(0); }/ ---------------------------------------------- -------------------- /|カスタム内部反復関数|/ ----------------------------------------------- ------------------- int start(){int counted_bars = IndiorCounted()、i =バー - counted_bars - 1;二重温度; if(i gt; History-1)i = History-1;一方、(i gt = 1){hma#91; i#93; = 0、MATHFloor(HMA_Period2)、0、MODE_LWMA、PRICE_CLOSE、i)* 2 - iMA(NULL、0、HMA_Period、0、MODE_LWMA、PRICE_CLOSE、i);私 - ; } i =バー - counted_bars - 1;一方、(i gt = 1){temp = iMAOnArray(hma、0、MathSqrt(HMA_Period))、0、MODE_LWMA、i); hma#91; i#93; = temp;私 - ; } return(0); }/ ---------------------------------------------- --------------------
    私の船体移動平均の問題は、いくつかのバーが画像ショーのようなピークを示し、それが私が見つけることができないコードの問題から来ているということです...もし私が別の船体を平均的なインディオに移すと、ピークが発生したバー以降の移動平均

  2. #2
    あなたがhma配列を変更していると同時にあなたのimaonarray呼び出しでそれを参照しているという事実とは関係があります。私はあなたのコードがかなりクリーンなrun-throughで始まると推測しています... hma配列を設定し、imaonarrayをcalc tempに呼び出し、hma配列を変更します。しかし、次にinnerordinatedに依存しています最後のバーのみを処理するため、その時点以降(つまり、コードが実行された後)、hma配列には、それ以降のimaonarray呼び出しが参照する破棄されたデータが格納されます。それが最初に実行されたときと同じように正しく設定されることはなく、すべての履歴(またはあなたが設定した履歴varで上限を設定する場所)を通ることはありません。別の言い方をすると、私はあなたのhma配列を多少スクランブルした後、初期化して実行した後、mt4が履歴を現在の時刻に更新するいくつかの新しいバーを取得し、さらにあなたのスクランブルされたhma配列を使用して、最新のバーのみ。最初のセットの計算は正しいが、後続の実行はhmaデータをリセットしないので、hma配列の幾分完全な初期化を行うので、最初はうまく動作する。初めてコードが実行された後、hma配列はあなたのhma [i] = temp呼び出しによって混乱してしまいます。そのため、将来のすべてのimaonarray呼び出しは、コードが最初に実行された時からhma配列内の虚偽のhmaデータを参照しています。 imaonarray関数はhma配列内の最新のバーよりも多くの 'bar'を参照しますが、hma配列の内在位置より前にあるhma配列内のデータを修正することは決してできません。あなたは、最初の流通後にデリバティブを作成することがあります。

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.