[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 385

 
granit77:
ビクター、あなたは間違っている。このやや長めの議論のおかげで、2人のプログラマーが同時に新人の質問に答えていて、このスレッドにはメリットしかなかった :))

いやー、楽しく読ませていただきました。そして、上級者(今はプログラマーと呼んでいいのか悪いのか、今迷っています : )の姿勢が非常によくわかりました。))- つまり、専門家が、高度な問題を解決する......ということです。))) と、一見単純に見える作業に対する見解がある。意見の相違はあっても、感情のない、友好的な議論になることを心から願っています。私も、残念ながら、まだ相違点(未解決)があります。ただ、私はここで哲学的なアプローチを公言しているに過ぎないのです。その方法で問題の解決方法が明らかでない場合は、別の方法を見つけなければなりません。しかし、その問題点を知ることができ、とても有意義です。

議論していただき、ありがとうございました。コンセンサスが得られていないのは残念なことです。(しかし、まだコンセンサスが得られていない...。(歌の「そこ、遠く、地下鉄のそば」が思い浮かびます))

そして、私やアルルの疑問に対する明白な答えがなかったのは、もちろん残念なことです。このような疑問は、彼や私だけではなく、自分でスレッドやI.T.を構築することが難しく、上級プロフェッショナルが書いたプログラムやシェルに頼る経験の少ない多くのプロフェッショナルが持っているのではないでしょうか。

まあ、それはいいとして。いずれ、これらの課題も解決していきます。: ))お疲れ様でした。どの当事者も、最終的には(解決方法は異なるが)前向きな姿勢で臨んでいる。そして、喜ばせる。

ところで、私は教育学の研究の中で、「すべての問題が解決できるわけではない、すべての答えを知っているわけではない、だから、問題は解決できる」とよく言っています。はオープンなままです。(微妙な終わり方を模索しているところです)いつもありがとうございます。
 
ヘルプ 1 トップのオープンまたは保留中の 売り注文の 価格を知る方法 2 指定した価格でオープンまたは保留中の売り注文があるかどうかを確認する方法
 

セルゲイ、どんな問題が未解決なんだ?これなら。

Chiripaha:

つまり、アルルの 質問に答えると、あるEAが注文の会計処理をした後、しばらく「昼寝」をしていると、その瞬間に、割り当てられた資金の限界(仮に預金の80%とします-両方のEAがこのサイズです)を超えていない別のEAが注文(市場で取引を開始します)を出します。また、1人目が作業を再開したとき(資金管理端末は前日に計算済み)、彼/彼女はExpert Advisorが設定した限度を超える取引を開くのでしょうか。

このシステムが(仮に)複数のEAで構成される場合、リスクマネジメントが重要なシステムになるようなことはあるのでしょうか?

このマルチスレッドは正しく理解されていますか?- だとすれば、財務的な観点からは、当然ながら、めちゃくちゃです。しかし、小口では確率が小さいので、あくまで仮説に過ぎない。そして、大きなアカウントでは、おそらく彼ら自身が何かを書くでしょう。それでも、結果的にそうなるのでしょうか?

そして質問があるのですが、これは公式見解なのでしょうか、それとも私のような憶測や経験に過ぎないのでしょうか?

378 ページにコードがあります。また来たよ。

#property show_inputs

extern int Pause = 1000;

int    hwndChart = NULL; // Уникальный идентификатор скрипта.
string sName = "Condition";

void init()
 {
  hwndChart = WindowHandle(Symbol(), 0);
  // Создаём глобальную переменную синхронизации скриптов.
  if (!GlobalVariableCheck(sName)) GlobalVariableSet(sName, 0);
 }
 
void deinit()
 {
  GlobalVariableDel(sName);
 }

void start()
 {
  while (!IsStopped())
   {// Начало блока синхронизации.
    GlobalVariableSetOnCondition(sName, hwndChart, 0);
    if (GlobalVariableGet(sName) == hwndChart)
     {
      Print("Start");
      Sleep(Pause); // Имитация работы.
      Print("End");
     }
    GlobalVariableSetOnCondition(sName, 0, hwndChart);
    // Завершение блока синхронизации.
    Sleep(200);
   }
 }
遅延が「模倣品」である場合、預金または他のリソースへの参照を挿入する。

このシンクブロックを関数にして、ライブラリに入れればいい。どのEAからでも入金にアクセスできる同期機能を持つことになります。

 
インデックスをチャートウィンドウハンドルに置き換える
 
FAQ:
インデックスに代えて、チャートウィンドウハンドル

そうなんだ!指標で何が何だかわからなくなるんです。

やり直しました。

===================

しかし、インデックスを作成することで、グローバル変数を 適切に削除することができるようになります。

deinitでインデックスをデクリメントする必要があります。そして、インデックスが0になった時点でグローバル変数を削除します。

しかし、このデクリメントでは、削除後にスクリプトを再読み込みすることができません。インデックスが混在することになる。

リソースにアクセスするすべてのモジュールのインデックスのグローバル配列を作成する必要があります。まあ、それで仕事してください。

また、グローバル変数を2つ作ることも可能です。1つは最後のインデックス、もう1つは現在のモジュール数です。インデックスが増えるだけ。おそらく、もっと簡単になるはずです。

あるいは、グローバル変数に煩わされないことです。初回実行前に手動で削除してください。

 
これは、最初の初期不良が発生するまでうまくいくでしょう。
 
やったぞ!私たちも同期して終了しなければなりません。deinitでは、順番待ちをして、グローバル変数の リセットで終了します。リソースへのアクセスが短時間であれば、deinitでも問題ないでしょう。
 

1) 問題点:各スクリプト(EA)は、他のすべてのスクリプトの存在を認識しなければならない。

2) 問題点 : 障害が発生した場合、障害が発生した方のグローバルが占有されずにハングアップし、キューがスタックしてしまう。

3) 解決策:

各エクスポは、名前-共通接頭辞+ウィンドウハンドル+シンボルで1つのグロバルカを構成します。グロバルカの値は、その機器の最後のティックの時間です。独自のハンドルを持つ2つの共通グローバル(作業後、それに独自のハンドルを書き込むか、それが最も古い場合、それをクリアします)。

キューは昇順に並べられ(ハンドル)、最も上位のものは2番目のグロバールをゼロに設定する

各Expで、シンボル/ハンドル/最終アクセス時刻/最終ティック時刻の3つの配列(構造体がないため)を作成します。

すべてのEXPは、すべてのEXPの(最終アクセス時刻/最終ティック時刻)を記録し、それらが異なるとすぐに(EXPの1つが故障)、故障したEXPの両方のグローバルが削除され、それは非アクティブとみなされます。

キューが復元される

これは、実際には、最もアクティブなチャート(頻繁なティック)に立つEAによって行われるでしょう。

が正常に初期化された場合、各Expoはそれ自身の後始末をします。

max skip - one tick.

ZS.そして一般的には、1つの多通貨を行う方が良い。

 
Zhunko:

セルゲイ、どんな問題が未解決なんだ?もし、そうなら。

378 ページにコードがあります。また来たよ。

遅延「作品の模倣」がある場合は、預金または他のリソースへの参照を挿入します。

このシンクブロックを関数にして、ライブラリに入れればいいのです。どのExpert Advisorからでも入金にアクセスできる同期機能を得ることができます。

これはアトミックアクセスブロックで、同期はありません。預金にだけ適用するのは意味がない。預け入れパラメータ関数のいずれかを呼び出すと、それだけでアトミックとなり、何のナッジもない。アトミックに行えば、Expert Advisorのすべての作業が行われます。そうやって問題を解決していくのです。何かをしたつもりが、実はそれは錯覚なのです。

 
FAQ:

1) 問題点:各スクリプト(EA)は、他のすべてのスクリプトの存在を知っていなければならない。

2) 問題点 : 障害が発生した場合、障害が発生した方のグローバルが占有されずにハングアップし、キューがスタックしてしまう。

3) 解決策:

各エクスポは、名前-共通接頭辞+ウィンドウハンドル+シンボルで1つのグロバルカを構成します。グロバルカの値は、その機器の最後のティックの時間です。独自のハンドルを持つ2つの共通グローバル(作業後、それに独自のハンドルを書き込むか、それが最も古い場合、それをクリアします)。

キューは昇順に並べられ(ハンドル)、最も上位のものは2番目のグロバールをゼロに設定する

各Expで、シンボル/ハンドル/最終アクセス時刻/最終ティック時刻の3つの配列(構造体がないため)を作成します。

すべてのEXPは、すべてのEXPの(最終アクセス時刻/最終ティック時刻)を記録し、それらが異なるとすぐに(EXPの1つが故障)、故障したEXPの両方のグローバルが削除され、それは非アクティブとみなされます。

キューが復元される

これは、実際には、最もアクティブなチャート(頻繁なティック)に立つEAによって行われるでしょう。

が正常に初期化された場合、各Expoはそれ自身の後始末をします。

max skip - one tick.

ZS.そして一般的には、1つの多通貨を行う方がよいでしょう


彼は理解できないだろう、あまりにもひどい上から目線)))この課題は、だいたいこのスタイルで解決しています。問題の本質を理解してくれる人がいるのは嬉しいことです。ただ、私にはまだキューがあり、どの順番でタスクが実行され始め、さらに輪番で実行されています。