// Slot Types#define SLOT_TYPE_OPEN 0 // Point of the Position#define SLOT_TYPE_CLOSE 1 // Point of the Position
#define SLOT_TYPE_OPENFILTER 2 // Logic Condition#define SLOT_TYPE_CLOSEFILTER 3 // Logic Condition
スムージング方法や価格定数の数値はMTとはDIFFERENT(長い間考えていたが、FSBとの互換性のためにステレオタイプから外れることにした :))。このすべては、実際には、将来的にエキスパートアドバイザー(またはユーザーが自分で書くもの)が簡単かつ強制的に指標を "ピクピク "できるように行われます :)(FSBで見たものがセットになっている(「what I see is what I sing」))。大まかには
友達から車をだましだまし使っていると電話が...。
>>まあ...
そして、彼らは危機を言う ;)
すべての問題を解決するまでは、ひとつひとつ比較する必要がありそうです。
ここでは、FSB Accelerator OscillatorとMTiAC(...)を比較してみました。
その方法について
1.FSBの為替レートをMTで使用している為替レートに更新する。 (MTからCtrl+Sで FSB ./Dataディレクトリにxxxxxx.csvファイルを保存する。) 2.FSBの為替レートをMTで使用している為替レートに更新する。データが別のフォルダにある場合は、FSBからMarket->Data Directoryを 使用して指定してください)。
2.目的のインジケータを印字するスクリプトIndicator_Values.mq4を作成します。(スクリプトは前のフォーラムのページにあります)。
3.このインジケーターをFSBに設定します。(必ず同じパラメータを使用してください。) 機能Export ->Indicatorsで、FSBインジケータをエクスポートします。
4.不具合を確認されましたら、ご報告ください。
幸運を祈ります。
------------
編集する。
最新のFSB v2.8.3.5 Betaを ご利用ください。
古典的な計算式は次の通りです:Momentum(n) = Close - Close(n)
これがFSBが採用している計算式です。
MTの用途:Momentum(n) = 100 * Close / Close(n)
それはわかっています。 インジケーターのパラメーターのことを言っているのです。平滑化期間。スムージング方式。設定しない。デフォルトで取られるパラメータ:0,0?
zfsさん、こんにちは。
デフォルトのパラメータは、Indicator Parametersダイアログウィンドウで確認できます。(プレスデフォルト)
なお、「追加平滑化」期間=0とする。つまり、スムージングが適用されないということです。
デフォルト値を確認できる2つ目の場所は、ソースコードの中です。
zfsさん、こんにちは。
私は、あなたの完璧さを原理的に疑っていませんでした。にもかかわらず、指標の最終的な数値が私には合わないということなのです。それとも、そうでなかったのだろうか。今は残念ながら確認する時間がありません。
Zfsです。
Stellaratorの 助けを借りて、FSBの多くの問題を修正しました。また、FSBのデフォルトのパラメータをMTでこのように変更しました。もうほとんどの差分が修正されているといいのですが。
不具合の可能性がある場合は、遠慮なくご報告ください。ご意見、ご感想、ご批判をお待ちしております。
思いとどまらせないと!重要なのは「EAの1回の繰り返しの限界」というニュアンスです。つまり、この制限の範囲内で、インジケータは1回(最初の呼び出し時)だけ計算されるのです!100%の自信をもって宣言します。その後のすべての呼び出しは、それをまったく開始()せず、必要なバッファから必要な値を取るだけである。この条件は、入力パラメータが変更されない場合(バッファとオフセットを除く)に100%となります。 このルールは、計算が1つの機器内で実行される場合に機能します。しかし、iCustomが他のTFやツールを参照する場合でも、その原理は成り立つと思います。
私は、0番目のバーの現在の分でのインジケータの値を240回に適用するExpert Advisorを書きたいと思っています。つまり、出力は常に最初の値を持つことが判明しているのですか?これは私にとってニュースなので、確認をお願いします。
オフトピックな質問ですが、Expert Advisorを書くことになり、0本目のバーで240回、現在の分でのインジケータの値にアクセスするようになりました。すなわち、出力は常に最初の値であることが判明しているのですか?これは私にとってニュースなので、確認をお願いします。
>> Expert Advisorは新しいティックごとに再スタートし、これは異なる反復であるため、インジケータ値も異なります。
EAは新しいティックごとに再起動しますが、これは異なる繰り返しであるため、インジケータの値も異なってきます。
前のバーの値を使用する」パラメータを正しく使用すれば、インジケータの現在のバーの値は必要ではありません。
日足チャートでMA(simple, 12, close)を使用するとします。このMAを正しく計算するためには、12本のバーの終値が必要です。
現在が午後3時の場合、現在の「終値」はそのバーの本当の終値ではありません。12PMまで変更になります。つまり、現在のバーのMAを使用すると、実際の終値ではなく、一時的な終値が含まれます。同時にバックテストでは、ヒストリカルバーの実際の(すでに固定された)終値が使用されます。この練習は、バックテストと実際のトレードの間に違いをもたらす。
さらに悪いことに
両方のMAが終値を基準としている場合、「FastMAがSlowMAを上回る」というロジックルールを見てみましょう。
日中、相場が急上昇した場合、FastMaがSlowMAを上回り、買いシグナルが上昇することがあります。シグナルに従って購入することになります。取引後、市場がダウンし、そう低く閉じると、それはスロー1の下にFastMAを移動しますしてみましょう。問題点が見えてきましたか?バーが閉まる前に購入済みであること。後でこのストラテジーをバックテストしてみると、このバー内にはそのような買いシグナルはないことがわかります。バックテスターのせいにしているようですが、問題は間違ったストラテジーロジックにあるのです。
フォレックス・ストラテジー・ビルダーは、「直前のバーの値を使用する」パラメータを自動的に設定することで、このような論理エラーを回避します。FSBは、バックテストに変化する(まだ固定されていない)指標を使うことはありません。そして、その論理では、もしストラテジーがインジケータを使用しないのであれば、なぜEAはすべてのティックに対してインジケータを計算しなければならないのでしょうか。1本につき1回の計算で十分です。
- 指標に始値を使用する場合、計算はバーの始値で行う必要があります。
- インジケータが終値、高値、安値、またはそれらの組み合わせを使用する場合、計算はバーの終値でなければなりません。
みなさん、こんばんは。
週末はパソコンがないんです :(そして今日は仕事で何もすることがなかったので・・・なんとか・・・。
考える時間はあったんですけどね。そして(願わくば)戦略的に(指標の枠組みを)決めてほしい。
一般的に、これからのインジケーターの内部構造は似ています(後ほど、明日にでも説明します)。外に「はみ出る」もの(パラメータ)-限りなくFSBに近いもの。つまり、その数、値(とその境界線)、そしてそれによって定義される機能性 - そう...。ほぼ1対1です。)ミクロのニュアンスは残りますが、やりながら決めていきます。
今のところごく簡単に(もう寝ます、明日も明後日もここには来ません、たぶん、仕事でいろいろやることがあるので)(by "our lovely" RSI :D の例で)。
1.パラメータ
そのままの写真でも、多少はわかると思います。唯一の難点は、slotTypeと その値(FSBとは異なるかもしれませんが、この場合は重要なポイントではありません)です。
あとは、シンプルに。数値はそのまま設定されます。コンボボックスの値は0から始まる(配列のような)番号が付いています。
スムージング方法や価格定数の数値はMTとはDIFFERENT(長い間考えていたが、FSBとの互換性のためにステレオタイプから外れることにした :))。このすべては、実際には、将来的にエキスパートアドバイザー(またはユーザーが自分で書くもの)が簡単かつ強制的に指標を "ピクピク "できるように行われます :)(FSBで見たものがセットになっている(「what I see is what I sing」))。大まかには
double dRSI = iCustom(NULL, 0, "-FSB- RSI",2, 0, 3, 3, 14, 30, 1, 0, 0);
をご覧ください。
2.戻り値。
各指標の最初の2つの指標バッファは、ポジションのオープン価格(それぞれロング/ショート)、または論理条件(1.0 - yes / その他の値 - no)のために予約されています。さらに、インジケータの値もあります(誰かの役に立つかもしれないので)。
最初の2つのバッファの内容は、インジケータのロジック(slotTypeと indLogic)によって決定されます(すなわち、もう一度 - 価格または1 / 0(他の値はゼロだけではないことができるので、私は "1" でそれをチェックすることをお勧めします(一般的に - インジケータが値を持たないようにそこにEMPTY_VALUEの 可能性がある))。
すべての指標はIndicatorCounted()を考慮に入れて最適化されました(これは大体においてオリジナルコードの主な変更点です)(ミロスラフの言う通り、一般的には-指標値はバーごとに一度再計算すべきです(これも-一般的には... ;))。しかし、正しく視覚的に表示するため、そして一般的に(良い音で)表示するため...。一般的には、それほど遅くなることはないはずです。
色付きや類似の(「特に才能のある」:)指標のレンダリングには、グラフィカル・オブジェクトを使用します(余分なバッファを占有しないようにします)。私自身もテストしましたが、問題なく動作しています(ビジュアル表示の場合、インジケーターバッファより遅いですが、それほど致命的ではありませんし、iCustomが呼ばれた場合、グラフィック関数は全く呼ばれないので、「過剰」でも速度には影響しません)。
今はこれで終わりです。Miroslavにいくつか質問があるのですが、もう疲れました :) 、明日にでも聞いてみようと思います(ただし、前にも言ったように、急いで)...。
p.s. アーカイブからファイルを移動する前に、ExpertsIndicators フォルダにあるfsb*.mq4 ファイルを削除してください。残りは古いものの上に上書きすればいいだけです。今後、ファイルの命名規則には変更はありません(すべてのインジケーターに "-FSB- " というプレフィックスが付きます)。