ユージン、記事をありがとう!為替市場に関する私の知識のパズルの多くのギャップがほぼ完全に埋まりました。
1つだけ微妙な点があります。記事の読者の中には、テストする通貨ペアに接尾辞や接頭辞が ある場合、ストラテジーテスターで ExpertAdvisorを起動しない 人が いるかもしれません 。この点を考慮し、Expert Advisorのパラメータ設定で指定する必要があります。
でも、これですべて解決です!
ありがとう、ウラジミール。
ユージン、昨日は記事のテキスト部分に興味があったので、Expert Advisor のコードをよく見ていませんでした:
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int CountOrders(string symb,ENUM_ORDER_TYPE type) { int count=0; for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(OrderGetTicket(i))) { if(OrderGetInteger(ORDER_TYPE)==type && PositionGetString(POSITION_SYMBOL)==symb && PositionGetInteger(POSITION_MAGIC)==Magic) count++; } } return(count); }
あなたの警告にはすぐに注意を払いました。以下は、未決済の注文と未決済のポジションを カウントする関数です。CountOrdersとCountTradesは、マジックEA番号を考慮に入れて、特定のシンボルの未決済注文とポジションをカウントします。これらはまだコードでは使われていませんが、将来のバージョンで、リミット間のスプレッドを中心に置く通常の関数を書くときに使う予定です。
しかし、私はよく理解していません - それはあなたの考えですか、それとも違うものですか?
ウラジミール、よろしく。
しかし、よく理解できないのですが、これはあなたのアイデアなのでしょうか、それとも違うものなのでしょうか?
ウラジミール、よろしく。
そうでなければ、Expert Advisorはそのマジシャンの注文を他のものと混同し始める可能性があります)Symbは将来Expert Advisorの多通貨バージョンを作るつもりです。私はまだそれを作ることができませんでした))))
これは記事ではなく、MQの恥だ。どうしてこのようなものが公表されることが許されるのでしょうか?
//+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int CountTrades(string symb) { int count=0; for(int i=PositionsTotal()-1; i>=0; i--) { if(PositionSelectByTicket(PositionGetTicket(i))) { if(PositionGetString(POSITION_SYMBOL)==symb && PositionGetInteger(POSITION_MAGIC)==Magic) { count++; } } } return(count); }
PositionGetTicket(i)の説明書によると、「この関数は、オープンポジションの リスト内のインデックスによってポジションのチケットを返し、そのポジションでさらなる作業を行うために、このポジションを自動的に選択する...」とのことです。また、ポジションがすでに選択されているのに、なぜPositionSelectByTicket 関数を使ってチケットでポジションを選択するのでしょうか?新参者にやってはいけない方法を教えているのですか?
ウラジミールの発言は極めて妥当です。そして、あなたの回答はそのことについては全く関係ありません... オーダーを扱うのに、なぜシンボルとPOSITION マジックをチェックするのですか?
コードは別として、テキスト部分も気に入らなかった。
くだらない、ただの紙切れだ。
興味深いトピックであることは間違いない。
どんなマーケットメイキングをするのか、何の意味があるのか。
作者にマトリックスが欠如しているから、作れなかったのは事実である。
で、世の中にはたくさんある。
少なくともあと......10年は考える必要がある。
手始めとして、そして改善する方法として、私はこれを支持する。
記事を 斜め読みするのではなく、最初から最後まで、つまり完全に読むべきだ。そうすれば、そのような疑問は生じない。
PositionSelectByTicket() 関数を使わずにすでにチケットが選択されているときにPositionSelectByTicket() 関数を 使うことについてのアレクセイ・ヴィクトロフ氏の批判には完全に同意 します。ところで、私自身はそのことに注意を払っていませんでした。
いずれにせよ、記事に感謝する!
ありがとう、ウラジミール。
アレクセイさん、ご説明ありがとうございます。))私がメッセージを書いたとき、同じドキュメント(黄色でハイライト)を参照しました:
Функция возвращает тикет позиции по индексу в списке открытых позиций и автоматически выбирает эту позицию для дальнейшей работы с ней при помощи функций PositionGetDouble, PositionGetInteger, PositionGetString. ulong PositionGetTicket( int index // 項目リストの番号 ); Параметры index [in] Индекс позиции в списке открытых позиций, начиная с 0. Возвращаемое значение Тикет позиции. В случае неудачного выполнения возвращает 0.
ありがとう、ウラジミール。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「MQL5でマーケットメイク系アルゴリズムを作成する」はパブリッシュされました:
マーケットメーカーはどのように機能するのでしょうか。この問題を考えて、原始的なマーケットメイク系アルゴリズムを作ってみましょう。
多くの人は、マーケットメーカーはまったくリスクを負わないと考えています。しかし、これはそうではありません。マーケットメーカーの主なリスクは在庫リスクです。このリスクは、ポジションが一方向に急激に動く可能性があり、そのポジションをオフロードしてスプレッドで稼ぐ能力がないことにあります。例えば、熱狂的な群衆がある資産を売ると、マーケットメーカーは全供給を買い取ることを余儀なくされます。その結果、価格はマイナスになり、MMは損失を被ります。
企業は、特別なスプレッド中心方程式を使い、売買の最適価格を決定することで、このリスクを回避しようとしています。しかし、これは必ずしも実現可能なことではありません。たとえ価格が最適でなかったとしても、MMの仕事は市場に流動性を供給することであり、たとえ一時的に赤字であったとしても、この仕事をこなさなければなりません。
作者: Yevgeniy Koshtenko