Build 600+のインジケータをアップグレードする方法は? - ページ 4

 
qjol:
冗談でしょう、もちろんうまくいきましたよ


はい、現在動作しています。

最新のバージョンで10個のパラメータを すべて使用したところ、現在動作しています。

ありがとうございます。

ちなみに、7つのパラメータを持つOlderバージョンはなぜ動かなかったのか、まだ理解できていないのです

上の画像のように、そのインジケータには8つの外部パラメータがあります。ここで、'TimeFrame'は'xpMA'の前に'0'として定義されました。

そして、残りの7つのパラメータを以下のように宣言しました。

double  signal = iCustom(NULL,0,"xpMA",MA_Period,MA_Type,MA_Applied ,T3MA_VolumeFactor,JMA_Phase,Step_Period,DebugMode,3,0); 

どこに間違いがあるのか、教えてください。

よろしくお願いします。

 
deysmacro:

彼はよくある失敗から学ばなければならない。

サポートと理解に感謝します :)
 
Arav007:


ちなみに、7つのパラメータを持つ旧バージョンは、なぜ動作しなかったのか、まだ理解していません。

上の画像のように、このインジケータは8つの外部パラメータを持っています。ここでは、「xpMA」という文字列の前に「TimeFrame」を「0」として定義しています。

そして、残りの7つのパラメータを以下のように宣言しました。

というわけで、どこが間違いなのかご指摘ください。


iCustomを 使うには、宣言の順番に対応した パラメータを渡さなければなりません。


渡されたパラメータとその順番は、カスタムインジケータの宣言順および外部変数の型に対応していなければなりません。入力パラメータの値が指定されていない場合、デフォルト値が使用 されます。

パラメータを省略することはできません

例えば、カスタムインジケータに5つのパラメータがある場合、このように使用することが できます。

double x = iCustom (Symbol(), Period(), "Name", Param1, Param2, Param3, mode, shift);

が、このような使い方はできません

double x = iCustom (Symbol(), Period(), "Name", Param2, Param3, Param4, mode, shift);
 
qjol:


iCustomを 使用する場合は、宣言の順番に対応した パラメータを渡さなければなりません。

パラメータを省略することはできません

例えば、カスタムインジケータに5つのパラメータがある場合、このように使用することが できます。

が、このような使い方はできません



これは私が間違っていて、特定できないことです。

では、どのようにパラメータを設定したかというと、以下のようになります。

パラメータ1=MA_Period

パラメータ2=MA_Type

パラメータ3=MA_Applied

パラメータ4=T3MA_VolumeFactor

Param5=JMA_Phase

Param6=Step_Period

Param7=DebugMode

さて、どれが間違いでしょうか?

掲示板

 

最初の "TimeFrame "をスキップしていますね。



 
qjol:


最初の "TimeFrame "をスキップしています。




ohh、それならこの通り。

External Parameterのどれかが欠けると動作しません。

しかし、最初に定義されている現在のタイム フレームで動作するはずなので、意識的にスキップした。

iCustom(Null,0, Param1,...)

そのため、改めて'TimeFrame'として定義する必要はないのではと思った次第です。

訂正ありがとうございます。

 
Arav007:


ohh, then this is the case.

外部パラメータを省略すると、動作しません。

例えば、5つのパラメータがあるとして、最後の 2つを省略しても問題はありません。

しかし、1を飛ばして2 3 4 5を使うことはできません。

しかし、開始時に定義されている現在のタイムフレームで動作するはずなので、意識的にスキップした。

iCustom(Null,0, Param1,...)

はい、しかし、ターミナルはこのパラメータが何を含むか知りません...それは何でも含むことができます (必ずしもタイムフレームを含まない)

というわけで、改めて'TimeFrame'として定義する必要はないのではと思いました。

don't think, act ! ;-)

訂正ありがとうございます。