保有中ポジションを全決済する関数 OrderCloseAll
現在保有中のポジションを全て決済する関数です。
ナンピンやピラミッディングで増えたポジションを一括決済する場合にご利用下さい。
bool OrderCloseAll(
int magic,
int slippage
);
パラメータ
magic
決済対象とするポジションのマジックナンバー
slippage
スリッページ
戻り値
magicに指定したマジックナンバーで、尚且つ実行中のチャートの通貨ペアと同じ通貨ペアのポジションを決済します。
ポジションが全て決済されるか、決済対象となるポジションが存在しない場合、結果はtrueとなります。
決済に失敗した場合や、処理中に何らかのエラーが発生した場合には結果がfalseとなります。
待機注文は削除しません。
bool OrderCloseAll(int magic, int slippage){
double price = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) return(false);
if(OrderMagicNumber() != magic) continue;
if(OrderSymbol() != Symbol()) continue;
if(OrderType() != OP_BUY && OrderType() != OP_SELL) continue;
RefreshRates();
if(OrderType() == OP_BUY){
price = Bid;
}
else if(OrderType() == OP_SELL){
price = Ask;
}
if(OrderClose(OrderTicket(), OrderLots(), price, slippage, clrNONE) == false){
Print(__FUNCTION__, " OrderClose Error : ErrorCode=", GetLastError());
return(false);
}
}
return(true);
}
マジックナンバーをチェックしている部分や通貨ペアをチェックしている部分を削除することで、全てのマジックナンバー・全ての通貨ペアを対象とするよう修正可能です。
例えば以下のコードは全てのマジックナンバー・通貨ペアのポジションを決済します。
bool OrderCloseAll(int slippage){
double price = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) return(false);
if(OrderType() != OP_BUY && OrderType() != OP_SELL) continue;
RefreshRates();
if(OrderType() == OP_BUY){
price = Bid;
}
else if(OrderType() == OP_SELL){
price = Ask;
}
if(OrderClose(OrderTicket(), OrderLots(), price, slippage, clrNONE) == false){
Print(__FUNCTION__, " OrderClose Error : ErrorCode=", GetLastError());
return(false);
}
}
return(true);
}
コメント
**太字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)
画像
閉じる
関連トピックス
注目トピックス
いつも大変助けられています。ありがとうございます。
本記事に関連し、同時に待機注文も全決済しようと思い、次の行をコメントアウトしました。
//if(OrderType() != OP_BUY && OrderType() != OP_SELL) continue;
しかし、実行しても待機注文は残ったままでした。
これだけでは駄目なのでしょうか。ご教示頂けると幸甚です。
いつもご利用いただきまして誠にありがとうございます。
待機注文を削除する際は
OrderDelete()
をご利用くださいませ。下記に待機注文削除の関連記事をご案内いたします。
ご参考いただけますと幸いです。
今後とも何卒よろしくお願い申し上げます。
本件、オプションにある
全決済 にチェックを入れていれば(マジックナンバー 未記入)であれば) 機能する(=保有ポジ 全決済)
されるとの認識ですが、正しいでしょうか?
~~~~~~~~~~~~~~~~~~~
本件、ちょうど下記
https://labo.gogojungle.co.jp/articles/1659
上記質問中の 【追加質問】部分にて質問させていただいた内容となります。
全決済のオプションで機能いたします。
取引条件以外の決済(基本項目の損切り・利食い)には適用されませんので予めご了承くださいませ。
ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。