MT4 EAの勉強をしております。 質問なんですが、約定した時のボリンジャーバンド…

MT4 EAの勉強をしております。
質問なんですが、約定した時のボリンジャーバンドの真ん中のライン(移動平均線)と上下のライン(±2α)の
差を出して、約定価格+(真ん中ラインー下ライン)=ロスカット

みたいなプログラムにしたいです。

例えば 現在価格が99.5
ボリバン 真ん中ラインが100にいて
下のラインが99、上のライン101となっており
買いエントリーしたとします。

利確は足が真ん中のラインに当たったら
ロスカットはエントリーした時の
ボリバンの(真ん中のラインー下のライン)ー約定価格
例えで(100−99)ー99.5=98.5←この数値でロスカットしたいのですが
「エントリーしたときの」と、言うのがどうだせばいいのか
解らず、困っています。
解るか方がいら 辰靴磴い泙靴燭藏気┐督困韻覆い任靴腓Δ??
お願いします。

..[補足]..
k_ya03様
わかりやすい回答ありがとうございます。
補足で質問したいのですが、
エントリー時のボリバン真ん中ラインも、こな方法で出すことはできますか?
これが出せないと、真ん中とエントリー時の価格差が出せず、ロスカットの価格が出せないです。
大変申し訳ないのですが、お願いします。

回答1

いくつか方法がありますが、私が使ってるものを紹介します。

考え方としてordersend()の直後に購入レートを記録してあげればいいのです。
購入直後のレートというのはClose[0]のことですから購入直後のclose[0]を予め定義して変数に保存します。

【例】

double entryPrice; //購入レートの定義



{
ordersend(・・・);
entryPrice=Close[0]; // ここで購入価格の記録 購入時のレートをentryPriceに反映させる
}

ただこの方法の場合、エントリー価格にはスリッページが反映されません。
ただ私の場合は特殊な使い方をするため、この方法が何かと都合がよいので。
まぁ参考になれば。

【追記】
>エントリー時のボリバン真ん中ラインも、こな方法で出 垢海箸呂任ますか?
>これが出せないと、真ん中とエントリー時の価格差が出せず、ロスカットの価格が出せないです。
>大変申し訳ないのですが、お願いします。

これも考え方は同じです。
エントリーのタイミングで値を記録しておけばいいだけです。

double entryBand; //エントリー時のボリンジャーバンドの値を記録するため変数を定義


double band = iBands(・・・,0)// 現在のボリンジャーバンドの真ん中を定義 もしくは ボリンジャーバンドの真ん中は移動平均なのでMAを使う。


{
ordersend(・・・);
entryPrice=Close[0]; // ここで購入価格の記録 購入時のレートをentryPriceに反映させる
entryBand = band; //ここで購入時のボリンジャーバンドの現在地をentryBandeに記録
}

Originally posted 2019-09-09 19:42:57.

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


Translate »