ProConX MT5対応 注文時のSL,TPおよびトータルSL,TP機能(MQL4からMQL5へ)

MT5対応

ProConX MT5対応の一覧

前回→「ProConX MT5対応 ブレークイーブンラインの表示(MQL4からMQL5へ)」

今回は、 「注文時のSL,TP機能」
さらに、「PIPSによる自動決済機能」を追加します。

注文時のSL,TP機能

これは、エントリーすると同時に
自動的に、SL(Stop Loss:決済逆指値)、
TP(Take Profit:決済指値)を設定するする機能です。

 

 

まず、既存(MQL4)のロジックです。

やってみたら意外と簡単でした。

OnTick()のループ内で
「注文時のTP,SLの指定」がある場合、
TPとSLが指定されていなければ、
TPとSLを指定するだけです。

 

定義

 

TPとSLの指定は、
なので、指定されたPIPS分
プラスマイナスし
OrderModify
すればOKです。

OnTick()のループ

 

MQL5対応

まず、そのままコンパイル

OrderStopLoss(),OrderTakeProfit(),OrderOpenPrice,OrderType(),OP_BUY,….
が、エラーになっています。

 

まずは、単純に以下に置き換える。

ストップロス価格 OrderStopLoss() PositionGetDouble(POSITION_SL)
リミット価格 OrderTakeProfit() PositionGetDouble(POSITION_TP)
注文価格 OrderOpenPrice() PositionGetDouble(POSITION_PRICE_OPEN)
注文タイプ OrderType() PositionGetInteger(POSITION_TYPE)
買い OP_BUY POSITION_TYPE_BUY
チケット番号 OrderTicket() PositionGetInteger(POSITION_TICKET)

コンパイル

後は、OrderModify()

CTradeクラスにPositionModify()というのが
あるらしい。

PositionModify

指定されたシンボルでポジションパラメータを変更します。

bool  PositionModify(
const stringsymbol,    // シンボル
doublesl,        // 決済逆指値
doubletp// 決済指値
  )

指定されたチケットでポジションパラメータを変更します。

bool  PositionModify(
const ulong ticket,    // position ticket
doublesl,        // Stop Loss price
doubletp// Take Profit price
  )

パラメータ

symbol

[in]  ポジション変更に使用される金融製品の名称

ticket

[in]  変更が予定されているポジションチケット。

sl

[in] 決済逆指のトリガとなる新しい価格(変更が必要でない場合は以前の値)

tp

[in] 決済指値のトリガとなる新しい価格(変更が必要でない場合は以前の値)

戻り値

基本構造体のチェックが成功した場合は true、それ以外の場合は false

 

サクッと変更し、

コンパイル

あれ?エラーが。。

第一引数を、_Symbolに変更しても
同じエラーとなる。

 

わかりました。

カンマが余分でした。
恥ずかしい(。・_・。)

 

カンマを削除したらいきなり動作しました。

 

 

 

 

トータルPIPSによる自動決済

これは、合計獲得PIPSに応じて
自動決済する機能です。

 

 

こちらは簡単。

以下を追加するだけで完成!

 

 

次はこちら→「ProConX MT5対応 プロコンX PIPS消去による決済機能(MQL4からMQL5へ)」

ProConX MT5対応の一覧

コメント

タイトルとURLをコピーしました