人気の決済方法であるトレーリングストップを実装するサンプルです。
void TrailingStop(
int magic
double ts_pips;
);
パラメータ
magic
トレーリングストップの対象とするポジションのマジックナンバー
ts_pips
トレーリングストップの間隔をpips単位で指定
戻り値
無し
void TrailingStop(int magic, double ts_pips){
double sl = 0;
double point = Point;
if(Digits == 3 || Digits == 5){
point *= 10;
}
for(int i = OrdersTotal() - 1; i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) return;
if(OrderMagicNumber() != magic) continue;
if(OrderSymbol() != Symbol()) continue;
if(OrderType() == OP_BUY){
sl = Bid - ts_pips * point;
sl = NormalizeDouble(sl, Digits);
if(sl >= OrderOpenPrice() && sl > OrderStopLoss()){
if(!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0)){
Print(__FUNCTION__, " ErrorCode=", GetLastError());
}
}
}
else if(OrderType() == OP_SELL){
sl = Ask + ts_pips * point;
sl = NormalizeDouble(sl, Digits);
if(sl <= OrderOpenPrice() && (sl < OrderStopLoss() || OrderStopLoss() == 0)){
if(!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0)){
Print(__FUNCTION__, " ErrorCode=", GetLastError());
}
}
}
}
}
magicで指定されたポジションを選択し、変更後のSLの値を算出します。
買いポジションの場合は変更後のSLがエントリー価格と現在のSL値よりも大きい場合(より利益が確保できる場合)にSL値の変更処理を行ないます。
売りポジションの場合はエントリー価格と現在のSL値よりも小さい場合に変更を行ないます。
ただしエントリー時にSLを指定していない場合はSLが0となっているため、SLが変更されません。
そこで現在のSLとの比較の条件を、
sl < OrderStopLoss() || OrderStopLoss() == 0
としてSLが0でも変更がされるようにしています。
コメント
**太字1**
__太字2__
*斜体1*
_斜体2_
~~打ち消し線~~
++下線付きテキスト++
太字1
太字2
斜体1
斜体2
打ち消し線
++下線付きテキスト++
==マークテキスト==
19^th^
H~2~O
(c) (C) (r) (R) (tm) (TM) (p) (P) +-
:wink: :laughing: :yum: :cry:
:-) :-( 8-) ;)
マークテキスト
19th
H2O
© © ® ® ™ ™ § § ±
😉 😆 😋 😢
😃 😦 😎 😉
==リスト(箇条書き)==
リストの作成は先頭に
`+` `-` または`*`で始めることによってリストを作成できます
+ サブリストは2スペースのインデントで作成できます
- または、マークアップの文字を変更することでもサブリストを作成できます
+ GogoJungle
+ 投資家の英知をすべての人に。
+ とても簡単です!
リスト(箇条書き)
リストの作成は先頭に
+
-
または*
で始めることによってリストを作成できます
- サブリストは2スペースのインデントで作成できます
- または、マークアップの文字を変更することでもサブリストを作成できます
+ GogoJungle
+ 投資家の英知をすべての人に。
- とても簡単です!
==リスト(段落番号)==
1. GogoJungle LABO
2. EA(自動売買)
3. インジケーター
リスト(段落番号)
- GogoJungle LABO
- EA(自動売買)
- インジケーター
==テーブル==
| 名前 | 説明 |
| ------ | ----------- |
| EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
| インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル
名前 |
説明 |
EA(自動売買) |
MT4で利用可能な自動売買ソフトウェア |
インジケーター |
売買サイン、発注補助、各種通知機能などのツール |
==テーブル(カラムを右寄せ)==
| 名前 | 説明 |
| ------:| -----------:|
| EA(自動売買) | MT4で利用可能な自動売買ソフトウェア|
| インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル(カラムを右寄せ)
名前 |
説明 |
EA(自動売買) |
MT4で利用可能な自動売買ソフトウェア |
インジケーター |
売買サイン、発注補助、各種通知機能などのツール |
==リンク==
[GogoJungle](https://www.gogojungle.co.jp/)
==画像==
![EAつくーる](https://www.gogojungle.co.jp/img/products/5735)
画像
閉じる
**太字1**
__太字2__
*斜体1*
_斜体2_
~~打ち消し線~~
++下線付きテキスト++
太字1
太字2
斜体1
斜体2
打ち消し線
++下線付きテキスト++
==マークテキスト==
19^th^
H~2~O
(c) (C) (r) (R) (tm) (TM) (p) (P) +-
:wink: :laughing: :yum: :cry:
:-) :-( 8-) ;)
マークテキスト
19th
H2O
© © ® ® ™ ™ § § ±
😉 😆 😋 😢
😃 😦 😎 😉
==リスト(箇条書き)==
リストの作成は先頭に
`+` `-` または`*`で始めることによってリストを作成できます
+ サブリストは2スペースのインデントで作成できます
- または、マークアップの文字を変更することでもサブリストを作成できます
+ GogoJungle
+ 投資家の英知をすべての人に。
+ とても簡単です!
リスト(箇条書き)
リストの作成は先頭に
+
-
または*
で始めることによってリストを作成できます
- サブリストは2スペースのインデントで作成できます
- または、マークアップの文字を変更することでもサブリストを作成できます
+ GogoJungle
+ 投資家の英知をすべての人に。
- とても簡単です!
==リスト(段落番号)==
1. GogoJungle LABO
2. EA(自動売買)
3. インジケーター
リスト(段落番号)
- GogoJungle LABO
- EA(自動売買)
- インジケーター
==テーブル==
| 名前 | 説明 |
| ------ | ----------- |
| EA(自動売買) | MT4で利用可能な自動売買ソフトウェア |
| インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル
名前 |
説明 |
EA(自動売買) |
MT4で利用可能な自動売買ソフトウェア |
インジケーター |
売買サイン、発注補助、各種通知機能などのツール |
==テーブル(カラムを右寄せ)==
| 名前 | 説明 |
| ------:| -----------:|
| EA(自動売買) | MT4で利用可能な自動売買ソフトウェア|
| インジケーター | 売買サイン、発注補助、各種通知機能などのツール |
テーブル(カラムを右寄せ)
名前 |
説明 |
EA(自動売買) |
MT4で利用可能な自動売買ソフトウェア |
インジケーター |
売買サイン、発注補助、各種通知機能などのツール |
==リンク==
[GogoJungle](https://www.gogojungle.co.jp/)
==画像==
![EAつくーる](https://www.gogojungle.co.jp/img/products/5735)
画像
閉じる
関連トピックス
注目トピックス