mql4でOnTradeTransaction()の代わりになるものは何ですか? - ページ 7

 
Alexey Viktorov:

その場合、アーテムのライブラリーがないと生きていけない。

図書館はテレパシーで必要な情報を学習するのでしょうか?同じように86400回命令を振ることになる。

 
Igor Makanu:

do not add to array "をどうするか - つまり、欠落した成行注文のデータを削除するか?

しかし、計算でコードをオーバーロードするのを避けるために、少なくともイベントフラグOnTradeTransactionを 設定して、注文を出すときや強制的に閉じるときに発生させるべきです - あなたはどんな操作をしたいのか知っていますよね?- マシンに10msごと、あるいはtickごとに全データを実行させるのではなく、マシンに直接伝えてはどうでしょうか?


ZS:知識ベースがない状態で問題解決を依頼するスレッドがまた一つ増えましたね、個人的な感想ではありませんが、これはもう常態化していますね、どう考えても追加教材の勉強が必要です、ただ同じ志を持つ人と問題を議論しても同じ知識レベルの人と問題を議論しているだけです(((

配列に追加しない」で...mql4にはArrayRemove()関数はありませんが、その原理は配列を自分自身にコピーし、削除したインデックスの数だけサイズを小さくすることにあります。そしてOnTradeTRansaction()の代わりにArtemのライブラリに代わるものはなく、期待できないとこのスレッドで繰り返し言っています。
 
Igor Makanu:

せめてOnTradeTransaction イベントで、注文を出すときや強制的に決済するときに設定されるフラグを作るべきですね。

考えたのですが、EAによって機能が違うので誰も組み合わせない、サモンでフラグファイルを書くことは可能、もしかしたらそうかもしれない、代替案を探してみてはいかがでしょうか。

 
Aleksandr Volotko:

図書館はテレパシーで必要な情報を探し出すのだろうか?それだけで86400回、注文が振られます。

記事のディスカッションスレッドで確認することができます。そして、答えるのは私ではありません。使ってみただけですが・・・。そして、Artemの投稿を読み直すことから始めてください。このメッセージに注目してください。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

mql4でOnTradeTransaction()を置き換えるにはどうしたらいいですか?

注文と ポジションのプロパティの ハッシュサムです。記号は、その名前を構成する文字コードの和に符号化される。ただし、その場合はフルサイクルのみ。ハッシュサムが変更されたとき - 何が起こったか見てみましょう。


 
Aleksandr Volotko:

はい、考えましたが、EAによって機能が違うので、誰も組み合わせません、サモンでファイルフラグを書くことができます、私もそうするかもしれません、代替品を探してみてはいかがでしょうか?

以下は代替案ですhttps://www.mql5.com/ru/docs/standardlibrary/datastructures

またはArtemの記事から素材を使用し、しかし、それはまだSBの "データコレクション "に依存することになります。


どう考えても、しかし、新しい教材は、少なくともMQLの機能を理解するために勉強しなければならないだろうし、ただ10年前の配列に座って解析時間を短縮するOrderTotal() ..........................である。は、現在の問題や将来の新たな問題を解決することはできません。


もし、複数のEAとデータ交換(発注フラグなど)について話しているのであれば、普遍的な解決策はありません。

 
Alexey Viktorov:

それは、記事のディスカッションスレッドでご確認ください。そして、答えるのは私ではありません。使ってみただけですが・・・。そして、Artemの投稿を読み直すことから始めてください。このメッセージに注目してください。

これらはすべてオーダーのオーバーシュートにつながり、一日に100500回もそんなことをしたくないですよね。そして、それは重要ではありません - 私はループ内の集約位置ボリューム、または順序プロパティの ライブラリハッシュの合計をカウントします。

 
Igor Makanu:

the alternative ishttps://www.mql5.com/ru/docs/standardlibrary/datastructures

またはArtemの記事から素材を使用します。ちなみに、この場合も「Data Collections」に依存することになります。


どう考えても、しかし、新しい教材は、少なくともMQLの機能を理解するために勉強しなければならないだろうし、ただ10年前の配列に座って解析時間を短縮するOrderTotal() ..........................である。は、現在の問題や将来の新たな問題を解決することはできません。

私が完全にバカだとは思わないでください。ただ、使えるものだけで仕事をしなければならないこともありますし、使えるものがほとんどないこともあります。

 
Vitaly Muzichenko:

どうですか?

StringToShortArray()
ShortArrayToString()
 
Artyom Trishkin:
StringToShortArray()
ShortArrayToString()

頭が悪いんでしょうね(笑)。

どのように適用すればよいのでしょうか?

static __Total = -1;
int OT=OrdersTotal();
  if(OT!=__Total)
   {
     SetMarket(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
     __Total=OrdersTotal(); // запомним количество
   }

ただ1つだけ問題があって、それは非常に稀なことで、今日、数年ぶりに見つけた。以前にも見たことがあるかもしれないが、私が気づかなかっただけだ

トレーディング、自動売買システム、ストラテジーテストのためのフォーラム

mql4でOnTradeTransaction()を置き換えるにはどうしたらいいですか?

ヴィタリー・ムジチェンコ, 2020.01.27 15:32

よくわからないけど、気をつけないとね。 今日、 あるポジションがクローズして、もう一つのポジションがオープンして、ティックの間がほぼ 同時になっていることに気がつきました。

結局、OrdersTotal()は8個のまま でした。 Expert Advisorのロジックが混乱した - 新しいデータを再計算していない


 

解決策は簡単で、別の履歴変更チェックを導入すれば、何も失われることなく、100%機能します。

static __OTotal = -1;
static __HTotal = -1;
int OT=OrdersTotal();
int HT=OrdersHistoryTotal();
  if(OT!=__OTotal || HT!=__HTotal) // если изменилось - выполняем
   {
     SetMarket(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
     __OTotal=OrdersTotal(); // запомним текущее количество
     __HTotal=OrdersHistoryTotal(); // запомним количество в истории
   }