バンク動作時の0:00以降のポジションの遷移。どのように識別するのか?ホールの協力が必要。 - ページ 7

 
Oldman_Evgeny:

まあ、誰にも突っ込まれてないんですけどね。

自分で発明する必要があったのです。

だから

23:50に、Expert Advisorがopenまたはcloseで動作している場合、各ティックでの処理に切り替わる。

専門家がダニで動くなら、私はどこにも行く必要はない)。

23:50以降の最初のティックで、ポジションを強制的にクローズする。

(23:50ではなく、それ以降にクローズしようとしましたが、23:56にクローズを設定すると、23:56から00:00までが1ティックも来ないという事態に陥りました。

ロールオーバーが効いて、すべてが台無しになった......!(念のため、23:50を控えておきました。10分もすれば、少なくとも1ティックは来るでしょうから!)

買いか売りか、ストップロス、テイクプロフィットなど、ポジションのパラメータをすべて記憶しています......。

00:00:00まではポジションを開く ことを禁止しています。

00:00以降、最初の通過ティックで、23:00にクローズしたポジションの属性をすべて持ったまま、そのままの方向で強制的にポジションをオープンします。

そのため、ロールオーバーを回避しています。

原則的にロールオーバーの時よりも負けていますが、少なくとも正常なポジションの継続はできています。

もう一つ思いつかなかった...。

金曜日の唯一の問題は、市場が月曜日の01:00に開くことです。

しかし、月曜日の夜には、ギャップ、反転など、異なる「激変」がしばしば起こるので、ポジションを開かないことにしました。

私は金曜日にポジションを閉じるだけで、それだけです。休日も同じように過ごしています。


PS.ロールオーバーによる位置データの転送がないのは、ズルいと思う。AFDで対応する。何かあれば、中央銀行に文句を言えばいいのです。

そこでは、FXのディーラーをあまりかわいそうとは思っていない。

ロールオーバー時にポジションID(チケットではない)が保存されるのでは?
 
方位と敷地面積のみ保存されます。それ以外には何もない。
 
Oldman_Evgeny:
方位と敷地面積のみ保存されます。他にはありません。
PositionGetInteger(POSITION_IDENTIFIER)

何を返してくれるの?

 

PositionGetInteger(POSITION_IDENTIFIER)は、当然のように、チケット番号を返します。

ロールオーバー前の位置ではなく、ロールオーバーの結果としての新しいチケットの番号...。

しかし、ロールオーバー後、新しい位置で、m_position.Magic()=0となることが判明しました。したがって、Expert Advisorでは何も動作しない......。

おそらく、Magicを改造して新しい位置に詰め込み、他のものは古い位置から詰め込むことができるのだろう。

しかし、私は上に書いたようにしました。でも、もうちょっと考えてみます。

PSBはプラットフォームでこうやってごまかすから困る。

そして、私が理解する限り、彼らだけではない......。

トレーダーの沈黙に驚き!皆さん、日中取引やpips取引しかしないのでしょうか?

まあ、ロシアのライセンスブローカーがあるのに、alpareyみたいな厨房で取引するなよ...。
 

OnTickにコンストラクトを挿入してみた

if(m_position.Magic() == 0) m_trade.SetExpertMagicNumber( EA_Magic );

構成がうまくいかない。

オープンポジション でMagicを変更する方法はないようです...。

というわけで、私がやったこと、上に書いたことが唯一の選択肢のようです。

 
Oldman_Evgeny:

OnTickにコンストラクトを挿入してみた

if(m_position.Magic() == 0) m_trade.SetExpertMagicNumber( EA_Magic );

構成がうまくいかない。

オープンポジション でMagicを変更する方法はないようです...。

というわけで、私がやったこと、上に書いたことが唯一の選択肢のようです。

マジコンで何騒いでるんだ?各ポジションをクラスでラップし、ティックではそれを探さず、ただ追跡する。突然閉鎖した場合は、閉鎖の理由を分析する。理由がロールオーバーであれば、新しいものを探し、クラスフィールドを実際のものに変更します。失敗したときの再起動を整理するために、必要な情報はすべて別のファイルに書いています(まあ、ターミナルのグローバル変数は好きではありません)。
 
Vladimir Simakov:
失敗した後の再起動を整理するために、必要な情報をすべて別のファイルに書き込む(まあ、ターミナルのグローバル変数は好きではないので)。

また、Expert Advisorを異なるマシンで動作させる場合、ファイルを持ち運ぶ必要があるのでしょうか?

 
Ihor Herasko:

また、Expert Advisorが異なるマシンで動作している場合、ファイルを持ち運ぶ必要があるのでしょうか?

Ftp、クラウドはオプションです。
ロボット間でデータだけをやり取りするのであれば、pipeやws。
 
Vladimir Simakov:
Ftp、クラウド - オプションとして。
ロボット間でデータだけのやり取りが必要なら、パイプやws。

マジックがあるのに、なぜそこまでするのか?ほとんどの場合、それで十分なのです。少なくとも私は、なんとか使えています。

  1. シグナルが発生し、注文・ポジションがオープンされた時刻
  2. オーダーが属するグリッド(ストラテジーがグリッドの場合)のインデックス
  3. グリッド内の順序のインデックス
  4. Expert Advisor IDそのもの
もちろん、これらには一定の限界があります。しかし、その制限は極めて合理的なものです。それを超えることは、めったにないことです。

 
Ihor Herasko:

マジックがあるのに、なぜそこまでするのか?ほとんどの場合、目分量で十分なのです。少なくとも私は使うことができました。

  1. シグナルが発生し、注文・ポジションがオープンされた時刻
  2. オーダーが属するグリッド(ストラテジーがグリッドの場合)のインデックス
  3. グリッド内の順序のインデックス
  4. Expert Advisor IDそのもの
もちろん、これらには一定の限界があります。しかし、その制限は極めて合理的なものです。それを超えることは稀なことです。

だから、あなた自身が答えているのです-制限付きで、それこそこのスレッドが論じていることなのです。ラップの長所

  1. 信号の発生時刻は同じ です。
  2. グリッドインデックスも同じです。
  3. グリッド内のオーダーのインデックス - 従って、ここでも明示的なインデックスとなる。
  4. Expert Advisorの識別子......なるほど、なるほど。

この喜びの全貌は、チェックの際に、市場のポジション状態を確認し、クラスのフィールドを修正することです。 同時に、ポジションを経由せず、取引機能 ハンドラは、クラスのメソッドと します。失敗から回復するためにマジックを使うことを誰も禁じてはいません。単純に、フォーマットを開発するだけで、全歴史をバイナリに簡単に詰め込むことができるのです。

異なる職場で命令を分担するロボットの仕事については--。同期の問題以外には思い当たらない。ロボットがある職場でポジションを閉じる 命令を出し、もう一方の職場でその特定のポジションが開かれたという事実に基づいて取引を決定する、どうしたらそれを同期させることができるでしょうか?