PROFIからSUPER PROFIへの質問-1. - ページ 44

 
TheXpert:

EA自体でコントロールしないと非現実的。

一般論としては、どうやらそうみたいですね。

しかし、再計算をX msに1回以上行わないように規定すれば、単純かつ直接的に解決することができます。


TheXpert です。

そればかりか、その必要もない。

まあ、それを使用する各Expert Advisorでシャーマニズムよりも単線inludeは常に便利です。

 
Andrey Khatimlianskii:

まあ、一行インレジは、それを使うEAでいちいちシャムシャムするよりは、いつでも便利なんだけどね。

入力関数をdefineでオーバーライドして、fxsaberスタイルでできるかもしれません。

 
例えば、最後の1分間のバーの始まりから現在の瞬間まで、時間ごとにティックを読み取る。その数をチェックし、結果の配列のサイズを比較し、それが同じであれば、ティックはまだ同じで、すでにカウントされている。
 
Andrey Khatimlianskii:

いいえ、bid/ask/msの比較より確実に遅くなります。

信頼性の問題とは?重要なのは、何かが変わったという事実だけです。

あるいは、immutability、ティックが同じで、bidもaskも変わっていないことでしょうか。

 
Andrey Khatimlianskii:

一般論としては、おそらくそうでしょう。

しかし、再計算はXmsに1回以下と規定すれば、単純かつ直接的に解決することができます。


まあ、それを使う各Expert Advisorでは、シャーマニズムよりも一行インリュードの方が便利なのはいつものことです。

シャーマニズムとは、インリュードの他に、冒頭にもう1行挿入して

OnTick(){ Count_tick++;

defyneで解決しない場合は、Ctrl-Hで解決します :)

この場合でも、インクルードからライブラリ関数を呼び出す必要があります。

//include file
static int Count_tick=0;
void SameTick(int &tick, bool &same_tick) { if(tick<Count_tick){tick=Count_tick;return ;} else same_tick=true; return ;}
#define  SameTick() static int my_tick=0;bool same_tick=false;SameTick(my_tick, same_tick)

// EA file

func1(){SameTick();   if (same_tick)... }
func2(){SameTick();   if (same_tick) ...}...

s.s. 理論的には、高速市場では1ミリ秒間に数回のティックがあり、その中で最初と最後が同じビッドとアスクを持つことがあります。

 
Igor Zakharov:
直接」試すことができます:例えば、最後の分のバーの始まりから現在の瞬間までの時間で、刻みを読み取る。その数をチェックし、すなわち得られた配列のサイズを比較する - それが同じままであれば、刻みはまだ同じで、すでに計算されたものです。

そりゃそうだ!Volumeがある(刻々と変化している)。これはユニークなティック番号です!(バー内ですが十分です)

このような仕掛けで加速が得られるかどうか、確認してみます。

 
TheXpert:

定義によって入力関数をオーバーライドすることで、fxsaber流にできるかもしれません。

アレクセイ・マヴリン

の冒頭に挿入するもう一行、インリュードは別として、シャーマニズムって何だろう?

defineで解決しない場合は、Ctrl-Hで解決します :)

インクルードからライブラリ関数を呼び出す、つまり何らかの方法でコードに挿入する必要があります。

そのようです。Volumeが遅くなるのであれば、必要なものを全てデファイルする。


皆様、ご参加ありがとうございました。

 
Aleksey Mavrin:

の冒頭に挿入するもう一行、インリュードは別として、シャーマニズムって何だろう?

defineで解決しない場合は、Ctrl-Hで解決します :)

この場合でも、ライブラリ関数をinludeから呼び出す、つまり、何らかの方法でコードに挿入する必要があります。

s.s. 理論的には、高速な市場では、1ミリ秒間に複数のティックが存在し、その中で最初と最後が同じビッドとアスクを持つことができます。

アレクセイ・マヴリン

そして、シャーマニズムとは何か、冒頭にもう1行挿入する以外に

defineで解決しない場合は、Ctrl-Hで解決します :)

この場合でも、インクルードからライブラリ関数を呼び出す、つまり、次のようにコードに挿入する必要があります。

s.w. 理論的には、高速な市場では、1ミリ秒間に複数のティックが存在し、その中で最初と最後のティックが同じビッドとアスクを持つことができます。

Staticはチャートに添付された時のみ初期化されるため、計算エラーになります。

static int Count_tick=0;
 
Алексей Тарабанов:

Staticはグラフに添付された時のみ初期化されるので、計算エラーになります。

何がエラーになるのか理解できない。グローバルレベルで宣言しているのだから、何の違いもない。

 
Andrey Khatimlianskii:

そりゃそうだ!Volumeがある(刻々と変化している)。これはユニークなティック番号です!(バー内ですが十分です)

ティック処理中に新しいティックが入った場合、もしかしたら変更される可能性があるのでしょうか?