//+-------------------------------------------------------------------------------------+//| Расчитываем количество идущих один за одним баров одного признака |//+-------------------------------------------------------------------------------------+int LastCandlesType(int directionMA)
{
int cntUp, // Счётчик идущих друг за другом свечей с..
cntDn; // .. требуемыми признакамиfor (int i=i_AnyBarsToHistory; i>=1; i--)
{
if (directionMA == CROSS_UP)
{
if ((Open[i] - Close[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cntDn++; // .. прибавим 1 к счётчикуif ((Close[i] - Open[i]) >= i_sizeOfTrandBar * pt) // Если бар, не соответствует основному признаку..
cntDn = 0; // .. счётчик обнуляемif (cntDn == i_sequentBarsСount) // Если cnt баров в подряд медвежьи..return (REQUIRED_SEQUENTIAL_BEARS_GOT); // .. Выходим из функции
}
if (directionMA == CROSS_DN)
{
if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cntUp++; // .. прибавим 1 к счётчикуif ((Open[i] - Close[i]) >= i_sizeOfTrandBar * pt) // Если бар, не соответствует основному признаку..
cntUp = 0; // .. счётчик обнуляемif (cntUp == i_sequentBarsСount) // Если cnt баров в подряд бычьи..return (REQUIRED_SEQUENTIAL_BULLS_GOT); // .. Выходим из функции
}
}
}
とにかく、私のTS(ポイント3)のために注文を閉じる関数を書いて、既存のコードを関数に適合させるのを助けて欲しいのです。
こちらをご覧ください。;)
しかし、一理あります。そこでは、いずれにせよ、式の出力が1つ変わるだけでは問題は解決しない。結局、ゼロになる時点で、始値と終値が「入れ替わる」必要があるのです。
あなたは勘違いしているようですね。結局、+(a-b)=a-b, -(a-b)=-a-(-b)=-a+b=b-a となる。看板が 変わると、彼らは場所を変える。
Vadimは、ループの中に関数を置くとコードの実行速度が1桁遅くなることを以前書いていた。
私が理解した限りでは、Vadimはループ内のユーザー関数の呼び出しを意味しました。
自分の支店を開くべきかもしれませんね。なぜ「初心者のためのブランチ」が必要なのですか?
cntUpとcntDnの カウンターを別にしたのは、計算されたバーによるループで計算が行われるときに、一度にある値を持ち、別の値を持つ可能性があるからです。 また、カウンターは、ある値を加算した後、別の値を加算し続けることができます。また、変数が1つであれば、ある属性のバーの数は、他の属性のバーのカウンターに加算されます。
そこはカウンターが違うんです。ローソク足が逆方向に動いた場合、数式によってカウンターはリセットされます。あるいは、私があなたを理解していなかったのかもしれません。ただ、動作が遅くなる可能性があります。気が向いたらテストしてみます。
さて、次の重みが前の重みより重要であれば、単純にpower関数をラップすればよいのですが、なぜ最後の重みを取る必要があるのでしょうか?再帰後の最終的な重みは数式で導けるのに、なぜ再帰を使うのか、もう問答無用です(F(n,x)とy(n,x)を参照)。
EMAの質問」のようなスレッドを立てて、Matcadファイルを添付してください。あなたの投稿は、ここで迷子になるだけです。別スレで、数学の達人が分解してくれるはずです。
おそらく、答えが分からなくなるということでしょう。じゃあ、スレッド開いて、その書き込みを編集して、movedを書きますね。
ご覧ください。;)
うーん、ありがとうございます。これは最適化による結果なのでしょうか?
あなたは勘違いしているようですね。なぜなら、+(a-b)=a-b、-(a-b)=-a-(-b)=-a+b=b-aだからです。看板が変われば、場所も変わる。
だから、数学では、マイナスにマイナスをかけるとプラスになることが分かっている。そして、プラスからマイナスにするとマイナスになる。でも、変数が入れ替わるというのは初めて聞きました。
私が理解する限り、Vadimはループ内のユーザー関数の呼び出しを意味します。
そこにユーザー機能を持たせています。以下、初期関数そのものは、今のところ思い通りに動かないので、普遍化しないことにして、短縮していない状態です。
ループ内部で、共通の信号を受け取る関数から、この変数はその値を取得し、パラメータとして渡される。
int directionMA = GetStateOfMA();
まあそうなんですが、なぜ初心者が振分機の解剖学や周期を理解する必要があるのでしょうか)))私は初心者の方と何ら変わりはなく、文盲であるだけに、何事も頭で考えようとしているのかもしれません。
あなたは間違っています。実際、無教養であることは問題ない。多くの初心者が理解できないような、そんな思いがここにはあるのですね...。
そこには、別のカウンターがある。ローソク足が逆向きになると、計算式はカウンターをリセットします。それとも私が誤解しているのでしょうか。ただ、動作が遅くなるかもしれません。機会があればテストしてみます。
しかし、インデックスi_AnyBarsToHistoryの バーからインデックス1の バーまで出現するバーの 順番で値を計算するカウンターを用意しています。したがって、指数30から 指数15までの バーで条件が満たされるのであれば、以下のようになります。
で、例えばcnt= 2で条件が成立する。
その後、cntは前の値にインクリメントされます。もし、2であれば、新しい条件は1だけ増加し、cnt=3となり、値3で関数を終了することになります。お分かりになりますか?よく見てください。ここは基本的に理屈が通っているんです。
こんにちは。
EAでインジケータの パラメータを変更した経験のある方はいらっしゃいますか?
ボラティリティに依存(MAパラメータなど) ?
または、読むためのリンクを教えてください。
こんにちは。
EAでインジケータのパラメータを変更した経験のある方はいらっしゃいますか?
ボラティリティに依存(MAパラメータなど) ?
または、読むためのリンクを教えてください。
ムービングが どういうものかを理解すれば、そんな疑問は自ずと消えていくはずです。
ムービングがどういうものかを理解すれば、そんな疑問は自ずと消えていきます。
アダプティブMA