エラー、バグ、質問 - ページ 555

 
sergey1294:
アルパリでは、マーケット実行中にすぐにストップを置くことができないので、まずポジションを建ててから 修正する必要がある
OrderSendコマンドを1つだけ使って、ストップを含む注文を出すことは不可能なのでしょうか?それとも、既存の注文にストップを設定する前にPositionSelectを呼び出すことなのでしょうか?
 
スナフキン

Метатестер пилит диск HDD

バージョン527。

プロセスモニターを見ると、こんなくだらないことが延々と続いている。

ネットワークに接続していない、クラウドに接続していないターミナルとmetateterが起動しない。ファイルは変更されていません。

上記のスクリーンショットには、ファイル名に関する情報はありません。

より詳細なログをテキスト形式で添付してください。

 
idispatch:

MQL4では、すぐにストップ付きの注文を作成できましたが、MQL5ではそれができず、注文作成後にストップを設定する必要があります。

私が遅いのか(コードサンプルをください)、それとも私の意図なのでしょうか?

また、ストップとプロフィットを指定して注文を作成することも可能です。

お客様のご要望にお応えして

reqest.sl=SL。

reqest.tp=TP。

これはエラーです。SLとTPのレベルは市場価格から離れたところに設定されるべきですから、これらのラインは次のようになります。

を買いポジションにする。

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_BID) - SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT)。

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

うりごし

request.sl = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

request.tp = SymbolInfoDouble(Symbol(),SYMBOL_BID) - TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);

どこか勘違いしていなければいいのですが・・・。

 
idispatch:
アルパリでは、1回のOrderSendコマンドでストップを含む注文を出すことは不可能なのでしょうか。それとも、既存の注文にストップを設定する前に、PositionSelectを呼び出す 必要があるということでしょうか?

できる、なぜできない?

どのモードで注文するのですか?

 
ShurikAn:

ストップとプロフィットでできる。

クエリにある

reqest.sl=SL。

reqest.tp=TP。

これはエラーです。SLとTPのレベルは市場価格から距離を置いて設定する必要があるので、これらのラインは次のようになります。

もちろん、SLとTPはあなたのように定義されています。さらに、上で書いたように、もし私が単に

m_request.action =TRADE_ACTION_SLTP;
OrderSend(m_request, m_result)を実行する。

を指定すると、指定したSLとTPでストップが正常に設定されますが、正しく定義されていない場合はそうはいきません。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Renat:

できる、なぜできない?

どのモードで注文するのですか?

MqlTradeRequest m_request;
MqlTradeResult m_result;

m_request.action = TRADE_ACTION_DEAL;
m_request.symbol = Symbol()。
m_request.type = ORDER_TYPE_BUY;

m_request.price = Price; // 事前に計算されており、真値 :)

m_request.sl = SL; // 既に計算済みで正しい :)
m_request.tp = TP; // 事前に計算されており、真値 :)

m_request.volume = Vol;

m_request.type_filling = ORDER_FILLING_FOK;
m_request.deviation=10。
m_request.type_time = 0;
m_request.expiration = 0;
m_request.magic = 0;
m_request.comment = ""。

OrderSend(m_request, m_result)を実行する。
 
idispatch:
Alpariでは、1つのOrderSendコマンドを使用してストップを含む注文を出すことはできないのでしょうか?それとも、既存の注文にストップを設定する前にPositionSelectを呼び出すことでしょうか?

その通り、ストップはインスタントモードでないとできません。

実行タイプ

クライアント端末には、4つの注文実行モードがあります。

  • インスタントエグゼキューション
    このモードでは、ブローカーに提示された価格で成行注文の執行が行われます。執行要求を送信する際、端末は自動的に現在の価格を注文に代入します。ブローカーが価格を承諾した場合、注文は実行されます。ブローカーが要求価格を受け入れない場合、いわゆる「Requote」が発生し、ブローカーは注文が実行可能な価格を返します。
  • リクエストの実行
    このモードでは、成行注文はブローカーから事前に受信した価格で執行されます。成行注文を出す前に、ブローカーに執行価格を要求する。受信後、その価格での注文の執行を確認または拒否することができます。
  • マーケットエグゼキューション
    この成行注文の執行モードでは、執行価格の決定は、トレーダーの追加的な承認なしにブローカーによって行われます。このモードでの成行注文の送信は、その注文が執行される価格について早期に合意したことを意味する。

成行売り」「成行買い」ボタンを押すと、ブローカーが設定した価格で、それぞれ売りと買いの取引を執行するための注文が作成されます。

  • By Market」実行モードでは、ストップロスやテイクプロフィットのレベルは、すでにオープンしているポジションに対してのみ、変更によって設定することができます。
  • 注文に対するコメントは、ブローカーまたはサーバーによって変更されることがあります。例えば、ストップロスやテイクプロフィットで決済する場合、関連する情報が記載されます。
  • 実行」フィールドが非アクティブの場合、それを変更する機能がサーバー上でブロックされていることを意味します。
  • ポジションを開くウィンドウをダブルクリックすると、ティックを開いたり隠したりすることができます。
  • 取引所の実行
    クライアント端末で行った取引操作を、外部の取引システム(取引所)に転送するモードです。取引は、現在の市場の買値で執行さ れます。

各シンボルの執行モードは、証券会社によって選択されます。


全てはターミナルのヘルプに書かれています。でも、誰も読まないんです。

どの実行タイプかを知るには、関数 SymbolInfoInteger() で、識別子SYMBOL_TRADE_EXEMODE を指定して、プロパティを要求する必要があります。

シンボルトレードエクスモード

トレードモード

enum_symbol_trade_execution




enum_symbol_trade_execution

識別子

商品説明

シンボルトレード実行要求

トレードオンリクエスト

シンボルトレード実行インスタント

ストリーミング価格での取引

シンボルトレード実行市場

エグゼキューション_エグゼキューションマーケット

シンボルトレード取引所

為替執行


 

ありがとうございました。

そしてヘルプを読みましたが、見つからなかったのは私の見落とし+ヘルプにあるクロスリファレンスとかの推敲不足でした:)

 

Surgeon'sAdviserをテスト する場合 https://www.mql5.com/ru/code/611

を変更したものです。

[引用】。]

テストを開始するには、84行目で次のように置き換えます:
double Limit=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);

double Limit= 5 にします。

[/quote]

通常のデモ口座では、ツールセクションのトレードタブがアクティブな場合、テスト終了時にターミナルビューが変更されます。

ファイル:
Error01.JPG  382 kb
Error02.JPG  346 kb
 

デモ口座では、このような混乱があります。

何度やっても最初にリセットされる。

そしてXAUUSDでは、F9を押した後

マーケット概要」の注文ウィンドウをダブルクリックすることはできませんが。

P.S. XAUUSD)を取引できないことは知っています。