初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1208

 
Vladpedro:

違いはありません。注文やポジションを設定する際、自分のポジションには自分の、注文には自分の、と「コメント」をつけていたので、その違いの疑いがあるのです。その結果、あるポジションに注文が移動すると、その注文のコメントが継承される。

そして、コメントでポジションを確認すると、コメントが違うという混乱がありました。 それを修正しました。

あなたのコードでは、SELL_LIMITが 発生した場合にどのようにポジションがクローズされるのか、全く理解できません。エクイティ。

すべてのポジションがクローズ可能かどうかをチェックし、そのためのフラグが設定されているようです。

が、CloseAllPositions()の 中で。

何かが足りない

SELL_LIMITが 発生した場合、すべてのポジションを閉じるかどうかのチェックは行われません。

もしかして、この同じm_account.Equity()>= m_account.Balance()+15は、何か別の方法で実装されているのでしょうか?

あるいは、私の文脈で平均化の意味を間違って説明したせいかもしれません。

私はすでに上述したように、 保留中の注文は 関係ありません。保留中の注文は、利益を得ることができません。at all」という言葉から。それをはっきりさせない限り、先に進めないのです。


追記:2つのケースについて、解決例を示しました。

  1. もし、2つのポジションしかない場合は、より多くの利益を上げている方を探し、それを決済する必要があります。
  2. 2つ以上のポジションを持っている場合、それらの合計利益が指定されたものよりも多ければ、すべてのポジションを決済します。
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Vladimir Karputov:

すでに上で指摘したように、 保留中の注文は まったく関係ない。保留中の注文は、利益を得ることができません。at all」という言葉から。これをはっきりさせないと、先に進めないのです。

ウラジミールまあ、当然ながら、保留中の注文は利益を持つことができません。もちろん、オープンポジションの利益の話です。

これらのポジションのオープン方法の違いだけで、異なるクローズ方法が必要です。

もし2つ目のポジションがスマートなSELL_STOP注文から開かれた場合、そのうちの1つはポジションの利益が大きい方を閉じなければなりません。 これはあなたにとってうまくいったことであり、機能するのです。

2つ目のポジションがSELL_LIMIT注文で開いた場合、どちらかのSLが 先に発動しない限り、Equity(m_account.Equity()>= m_account.Balance()+15) によって両方ともクローズされるはずです。

追加されました。

2つのケースを想定した解答例を示しました。

  1. ポジションは2つしかないので、利益の多いほうを探し、それを決済します。
  2. 2つ以上のポジションを持ち、その合計利益が規定値以上であれば、すべてのポジションを決済する。

2番目の条件ではすべて問題ないようです。しかし、私はなぜか2番目の条件が2番目のポジションを開き、0 -1,2に近いすぐにそれを閉じます。

もしかして、利益総額の指定場所が間違っているのでは?

InpProfitTarget = 15; ここで、動作しない場合。


 
Vladpedro:

ウラジミールもちろん保留中の注文が利益を持つことはできませんが。もちろんオープンポジションについての利益の話です。

ただ、これらのポジションのオープン方法が異なるので、別のクローズ方法が必要です。

もし、2つ目のポジションがスマートなSELL_STOP注文から開かれた場合、そのうちの1つは、ポジションの利益が大きい方を閉じなければなりません。 これは、あなたにとってうまくいっていることであり、機能するのです。

2つ目のポジションがSELL_LIMIT注文で開いた場合、どちらかのSLが 先に発動しない限り、Equity(m_account.Equity()>= m_account.Balance()+15) によって両方ともクローズされるはずです。

すみません。

2つのケースを想定した解答例を示しました。

  1. ポジションは2つしかないので、利益の大きい方を探し、それを決済します。
  2. 2つ以上のポジションを持っている場合、それらの利益の合計が指定したものよりも大きければ、すべてのポジションを決済します。


次は自分で何とかしてください。

 
Vladimir Karputov:

すみません。

2つのケースを想定した解答例を示しました。

  1. ポジションは2つしかないので、一番利益が大きいものを探して決済します。
  2. 2つ以上のポジションを持っている - それらの利益の合計が与えられたものよりも高い場合、我々はすべてのポジションを閉じます。


ここからは、ご自身で何とかしてください。

ウラジミールさん、ありがとうございます、やってみます。

2. 2つ以上のポジションを持っている - それらの合計利益が指定されたものよりも高い場合、我々はすべてのポジションを閉じます。

しかし、私はそれを必要とせず、2つ目のポジションがSELL_LIMITの トリガーで開かれた2つ以上のポジションを必要としました。

とにかくお待たせしました、お疲れ様でした。もちろん、自分なりに悩んで解決しますよ)))

 
こんばんは、みんな、トピックをマルチしないように - 私の質問はこれです - スクリプトはよく定義されたテイクとストップで保留中のストップ注文を設定し、それが実行されていない、コメントで規定されている[非流動性] - どのように戦うために - 実行前にループスクリプトに、高いスリップを設定したり、再試行の数または何を規定するために?あるいは、どこを掘ればいいのか、ヒントを教えてください。
 
neitrino22:
こんばんは、スレッドを増やさないように、ここで質問です - スクリプトは非常に特定のテイクとストップで保留中のストップ注文を入れ、それが実行されていない、コメントで[非流動性]と書かれています - どのようにそれに対処する - 実行前にループスクリプト、高いスリッページを設定したり、再テイクまたは何の数を指定するのですか?あるいは、どこを掘ればいいのか、ヒントを教えてください。

常にドキュメントを参照する必要があります

ORDER_TIME_GTC

注文は取り下げられるまでキューに 残ります

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Alexey Viktorov:

常にドキュメントを参照する必要があります

ORDER_TIME_GTC

注文は取り下げられるまでキューに 残ります

ありがとうございます、きっとそうです

 

こんばんは!(^o^)

募集職種は 1つです。

Expert Advisor は、PositionClose() メソッドを使用してポジションをクローズします。

結果が出力される ResultRetcode= 10009.コード説明:0.00で終了

コードの下に、チェック if(PositionSelect(_Symbol)) があり、これは成功します。

つまり、PositionClose()を実行してからオープンポジションが消滅するまでに時間がかかり、その間にプログラムが誤って終了してしまうのです。

この状況を正しく解決するにはどうしたらよいのでしょうか。


 

テスト終了後、新しいテストを実行するために、毎回ターミナルを再起動しなければならないのはなぜですか?

2020.04.27 15:19:08.415 Tester  XAUUSD: history data begins from 2014.02.12 00:00
2020.04.27 15:19:08.415 Tester  XAUUSD: history data begins from 2014.02.12 00:00
2020.04.27 15:19:08.415 Core 01 connecting to 127.0.0.1:3000
2020.04.27 15:19:08.415 Core 01 connected
2020.04.27 15:19:08.425 Core 01 authorized (agent build 2361)
2020.04.27 15:19:08.427 Tester  XAUUSD,M15 (Alpari-MT5-Demo): testing of Experts\ExpertTest.ex5 from 2017.07.26 00:00 to 2020.02.06 00:00
2020.04.27 15:19:08.466 Core 01 disconnected
2020.04.27 15:19:08.466 Core 01 connection closed

すべてのオブジェクトを削除しています。ファイルを閉じる。以下は、テストを停止したときのログです。

2020.04.27 15:15:43.188 Core 01 disconnected
2020.04.27 15:15:43.188 Core 01 connection closed
2020.04.27 15:15:43.189 Tester  stopped by user

次に起動しないときは、ターミナルを閉じてから もう一度開く必要があります。2361を構築。

 
OnTradeTransaction でクローズドポジションのコメントを取得するにはどうすればよいですか?
理由: