リニア減速はプログラミングエラーなのか、MT4の機能なのか? - ページ 11

 
Urain:

MetaQuotesが 何者なのか、ぜひ知りたいのですが、メッセージをお預かりすることはできますか?


誰でもいい。私たちの役員会での逸話です。その中のひとつです。
 

早速、コードを見てみました。すぐにレルモントフの詩の一節が頭に浮かんだ。

Земля тряслась - как наши груди,
馬と人がひしめき合っている。
そして、千の銃の砲撃が
に落とされた。 そして千の銃声が響く...

さて、ご質問の件です。

-Aleks- です。

ストラテジーの改良、特に戦術の段階では、アイデアを試すためにあらゆる種類の追加を命じなければならないが、この段階ではエキスパートアドバイザーの遅さを許容することが十分可能である。

しかし、EA本体に比べてこんなに6倍も速度が遅いとは驚きです。少なくとも解析的なデータ収集のためには、EAチューニングの 最適化が必要である。

他の人のコードを読むことは不可能で、成功したEAを入手した後に別のバージョンを注文した方が良いが、ゼロから書かなければならず、この場合にのみ、高速性と信頼性を確保できるという理解で合っていますか?個人的には、コンパイラの仕事は、例えば重複する演算をカットすることだと思うのですが......。

このコードの話ではなく、グローバルに一般的な話です。では、この発言に反論するのですか?

馬と人が混ざったような文体のプログラマーに発注すると、2度や3度ではなく、予算が増える分、常に100%で書き直さなければならない。プロに発注すれば、20%、40%、あるいは80%の要件変更でも、完全にコードを書き換える必要はないばかりか、変更の割合と同じ割合のコードさえも書き換える必要がないのです。しかし、「<50ドル」という予算では、そのことは忘れてください。

 
-Aleks-:

オープンオーダーに対して、オープンしたことの確認を待たずにオーダーが送信された場合、人為的な遅延が発生するはずだと考えてよろしいでしょうか?

あなたは間違っている。人為的な遅れはあってはならない。MT5にはシンプルなイベントモデルがあり、sleep() による遅延の代わりに使用することができます。
 
micle:
もちろん、Expert Advisorは注文の送信エラーに対応する必要があります。最も単純なケースでは、注文のオープンに失敗したことを示すメッセージを表示することです。より高度なバージョンでは、さらなるアクションを決定します。

だから、私の代わりとなるEAが必要なのですが、ここでは更なるアクションが非常に重要です...。しかし、それらがタイムリーに行われるかどうかはわからない(例えば、計算されたエントリーポイントからすでに価格が大きく離れてしまっている)。

セルゲイ

送信させなかった。コーダーにIsTradeContextBusyを使用して確認するよう依頼する。

ご忠告ありがとうございます。でも、このニュアンスはまさに次のスレッドで話していたことです。どうやって知るんだ?

セルゲイ

509ビルドを使用している場合、そこには8スレッドが存在します。 IsTradeContextBusyの状況は発生しないはずです。

もしそうなら、上記の点を参照してください。

また、複数の端末を使用することも可能です。

よくわからないのですが、端末の数が注文の受け渡しに影響するのでしょうか? つまり、一つの同じ口座に対して複数の端末を立ち上げて、それぞれの端末から開設の注文を出して、半分がバタバタしても残りの半分が正常に注文を実行するのでしょうか? DCで注文を処理して、初めて次の注文を受け付けるのでは・・・と思いました。

C-4:

早速、コードを見てみました。すぐにレルモントフの詩の一節が頭に浮かんだ。

さて、ご質問の件です。

人馬一体の文体を書くプログラマーに発注すると、増え続ける予算のために、二度や三度ではなく、常に100%で書き直さなければならないのです。プロに依頼すれば、20%、40%、あるいは80%の要件変更でも、完全に書き直す必要はなく、変更部分と同じ割合のコードも書き直すことができるのです。しかし、「<50ドル」という予算では、そのことは忘れてください。

今は100ドル以上かかっていますが、これからさらに追加していくことになると思います。計算すると、こうなる。

30ドルで10回リビジョンすると300ドル、50ドルで10回リビジョンすると500ドルのコストになります。200ドルのような節約は、私にとって重要なことです。この方法は、特に開発が進行中の場合、自分自身を正当化することができます。ここで、神経をすり減らすしかない...。が、それは運次第。

C-4:
あなたは間違っている。人為的な遅れはあってはならない。MT5にはシンプルなイベントモデルがあり、sleep()遅延の代わりに使用することができます。
私はMT4について話しているので、我々はその "バッファ "から注文を処理し、価格が強く移動した場合にそれらを拒否する証券会社を "爆撃 "することができることを確認しますか?
 
-Aleks-:

ご忠告ありがとうございます。でも、これは次のスレッドでお話ししたニュアンスです。どのように知ればいいのでしょうか?

その中に入って何かを探す必要はないのです。
もし誰かがあるべき姿を示唆して、それが自分のコードに欠けていることを発見したら、黙ってコーダーを変えた方がいい。枝を作らないこと。

よくわからないのですが、端末の数が注文の受け渡しに影響するのでしょうか? つまり、同じ口座で複数の端末を立ち上げて、それぞれから注文を出すと、半分が詰まったとしても、残りの半分は正常に注文が執行されるのでしょうか?

端末の数は、送信するスレッドの数と同じになります。10台の端末が1つのオーダーを送る - オーダーは10件になる。

 
-Aleks-:

だから、私の代わりとなるEAが必要なのですが、ここでは更なるアクションが非常に重要です...。しかし、それが適時であるかどうかはわからない(例えば、価格が計算されたエントリーポイントからすでに大きく離れている)。

現時点では、Expert Advisorのコストは100ドル以上ですが、さらに追加していくことになると思います。それが算数なんですね。

30ドルで10回リビジョンすると300ドルの出費、50ドルで10回リビジョンすると500ドルの出費となります。200ドルのような節約は、私にとって重要なことです。この方法は、特に開発が進行中の場合、自分自身を正当化することができます。ただし、神経をすり減らすのは...。が、運次第です。

これは、あなた側のアプローチが間違っているのです。

テスターにコードを発注し、最適化のスピードの重要性を説き、必要な改良を加えるのです。そして、テスト版ができてから、完全にテストされたロジックとすべての修正・推奨を含む本番版を注文するのです。

より多くのお金を節約することができます。ダメ?

 
sergeev:

調べて何が何だかわからなくなることはないのです。
もし、誰かがこうあるべきというヒントを与えてくれたとして、それがコードに欠けているのを見つけたら、黙ってコーダーを変えてください。枝を作らないこと。

端末の数 - 送信するスレッドの数は同じ多重度です。10台の端末が1つの注文を送る - 10個の注文がある。

また、証券会社はどうでしょうか?結局、注文が詰まっているのは端末なんですよねー。では、多数のオーダーを送る理由は何でしょうか?

artmedia70 です。

これは、あなたの側からの間違ったアプローチです。

テスターにコードを発注し、最適化速度の重要性を通知し、必要な改良を導入するのです。そして、テスター版の準備が整ってから、完全にデバッグされたロジックと必要なすべての修正・推奨を含む本番版を注文してください。

より多くのお金を節約することができます。ダメ?

まあ、そもそも私は当初、テストのスピードがテスターや実際の実装に大きく左右されるとは言っていなかったのですが。

あとは、それこそテスト、リファイン......それとも、すぐに「本気じゃなくてテストです」と書けば、価格は何倍にもなるということでしょうか?

 
-Aleks-:

DCはどうですか?結局、注文が詰まっているのは彼なのか!?それなら、何度も注文を出す意味はあるのでしょうか?

一度に何十個もの注文を送る必要がないのであれば、私は主張しない。

ある端末から1つずつ送信して、コンテキストが空くのを待つなどしてもよいでしょう。

数分で1ダース全部が送信されることもあります。

 
sergeev:

いや、まあ、一度に何十枚もアップロードする必要がないのであれば、こだわることはないんですけどね。

1つの端末から1つずつ送信し、コンテキストが解放されるのを待つ、といった使い方ができるのです。

数分で1ダース分送れるかもしれません。

そこで質問なのですが、証券会社で注文がどのように処理されるのか、並列なのか順次なのかがわかりません。

 
-Aleks-:

を並列に、それとも順次に?

入札は順次入ってくるが、他の流動性供給者がいることもあり、買いが次の売りより早く執行されるとは限らない。

しかし、世界を単純化するために - 常に直列になると考えてください。


この情報は、トピックにとどまるためだけのものです。