string PairName = "";
int StdDev.MA.Period = 12;
int StdDev.MA.Shift = 0;
int StdDev.MA.Method = MODE_SMA;
int StdDev.MA.Price = PRICE_CLOSE;
int MA.Fast.Period = 3;
int MA.Fast.Method = MODE_SMMA;
int MA.Fast.Shift = 0;
#define CheckOncePerBar true;
Dabblerさん、ありがとうございます。EAとIndicatorの完全版を添付します。iCustomに関する記述を読み、パラメータの部分を除けばすべて理解できました。
パラメータに 入るのは、Indicatorの外部変数に使用したい値です......この場合、これらは......。
もう一度、ヘルプファイルを見てみましょう。
を見てみると、...の部分の定義があります。
9つの外部 変数があるので、9つのパラメータが正しい順序と正しいタイプで必要です。
簡単ですね。
それから、"また、EAに送られている値を物理的に確認する方法はありますか?"と尋ねます。
もちろんです。
Nullが タイプミスであることを除けば、Yep。
インジケータから始めて、コードを生成します。
#define SFX "SFX"定数なので#define。一度だけ定義しておけば、タイプミスはありません。ご回答ありがとうございました。
ExtMapBuffer1[i+3] = lower_fractal_7b; could be used as calculated value when reversal fractal is called?そうです。いつもそうです。Extern Valuesについてです。そして、あなたはBufferについて話しているのでしょう。
はいUBZENです。
私もあなたが提案したことを試してみましたが、私のインジケータに記載されているとおりの値を返しました....
このインジケータは、長いパラメータが ない分、簡単に追加したり使ったりできます。
私はパラメータをコンパイルするのに迷いましたが、皆さんはそうではありませんでした。
どうもありがとうございました。私は数日間、この答えを探していました。
iCustomはあなたのIndicatorバッファにアクセスすることができます。
例えば、2つのインディケータに基づいた戦略を持つEAを書く場合、EAにインディケータコードを組み込むことは可能ですが、インディケータバッファがEAで動作しないため、少し複雑です。EAは必要なシフト値で必要なバッファにアクセスするだけで、指標に変更は必要ありません。iCustomの呼び出しの中で、インディケータをセットアップするために必要な外部変数も渡すことができます。
RaptorUK様(および他の方)。
引用された投稿では、EAでカスタムインジケータの値を使用する2つの方法について説明されています。1つ目は、iCustomで、これはすでに知っています。というのも、以前、カスタムインジケータのコードをメインインジケータの本体に組み込んでみたことがあるのですが、うまくいかなかったからです。というのも、以前カスタムインジケータのコードをメインインジケータ本体に組み込んでみたのですが、うまくいきませんでした。インジケータを関数にして、最新の値(要素0の値)を返すようにすると、計算値そのものではなく、ダブル変数のEMPTY_VALUEを常に取得します。iCustom関数を使用して、シフトを最新の値である0に設定しようとしました。これを実行すると、ターミナルは0を返し、エキスパートタブにSTACK OVERFLOWというエラーが表示されます。2回目のクリックでは値を返しますが、数回[0]の値を出力するたびに、別のSTACK OVERFLOWエラーが発生し、これが何度も繰り返されます。iCustomは最初の初期化で値0とSTACK OVERFLOWを返すので(そして正しい値を与え始めてから)、私のEAではicustomを使用できません。なぜなら、Start()が起動するたびに異なるシンボルのicustomを呼び出し、そのために複数のカスタムインディケータを呼び出します。これはEAをクラッシュさせる原因となっています。icustomが最新の値[0]を返すようにしたいときに、なぜSTACK OVERFLOWエラーが発生するのか理解できませんが、ぜひ知りたいところです。しかし、私は、呼び出されるすべてのインジケータのコードを、メインインジケータ内の関数に変換することによって内部化することを好みます。あなたは、配列を使用し、それらを「as series fashion」で処理することについて何か言っていました。これを詳しく説明していただけませんか?
私は古典的なADX.mq4インジケータのmq4ファイルを追加しました。内部ではADXの値が2回出力されます。1回目はIcustomによって、2回目はADX内部の関数になったADXコードによってです。Icustom(ADX)は値を返しますが、ADX(symbol,timeframe)は値を返しません。247456457457とかいう同じEMPTY_VALUEを何度も何度も返してきます。なぜこのようなことが起こるのか、またEAテンプレートとmq4カスタムインジケーターファイルの両方でどのようにこれを改善すればよいのか、ご説明ください。
よろしくお願いします。
追記:添付ファイルが機能していないようです。しかし、あなたはADXカスタムインジケータとしてCallicustomvsFunctionサンプルインジケータの両方をhttp://www.forexfactory.com/showthre...37#post8569537(私の名前はそこにCodixです)からダウンロードすることができます。
上記の投稿(https://www.mql5.com/en/forum/138577/page3#627521 とhttps://www.mql5.com/en/forum/138577/page3#797401 )では、ドットや単語の区切り文字を使用していました。
2014年 2月3日(Build 600)以降、それは許されません。 アンダースコアまたはキャメルケースを 使用してください。
アンダースコアまたはキャメルケースを使用してください。