作成したEAですが”カピバラEA”と名付けることにしました。
自分で言いますがかわいらしくていいですねw
さて、実際にEAを運用し始めてみるとせっかくもらった入金ボーナスが使えていないことが分かりました。
初っ端の改善はこれを使えるようにしたいと思います。
改善が簡単で投資への効果は抜群ですからね。
以下がMT4上での残高などの表示ですが、クレジット計のところに表示されているのがボーナスになります。ボーナス自体は出金出来ないので残高とは別でカウントされてます。
有効証拠金をみるとこっちにはきちんとカウントされているので、投資資金としては運用が可能です。
一方で、以下がEAの状態表示です。
ちょっと見にくいですが、真ん中辺に利用可能残高が110000円(100%)とあります。
MT4の残高の値と一致してるのが分かると思います。
これを残高とクレジット計の合計:177599円となるように改善していきます。
残高情報を取得している部分
残高情報を取得してる関数は以下です。
シンタックスハイライターの表示が中途半端ですがMQL4言語対応中です。
//+------------------------------------------------------------------+
//| トラップ情報取得
//+------------------------------------------------------------------+
void GetTrapInfo(struct_TrapInfo &in_st)
{
in_st.Balance = AccountInfoDouble(ACCOUNT_BALANCE)*(double)_InputBarancePercentage/100.0;
in_st.CenterPrice = (_InputRangeMAX+_InputRangeMIN)*0.5; // レンジの中央価格(レンジ上下限の平均)
in_st.BuyTrapWidth = (in_st.CenterPrice - _InputRangeMIN)/(_InputNumBuyTraps*2-1)*2; // 買いトラップの幅
in_st.SellTrapWidth = (_InputRangeMAX - in_st.CenterPrice)/(_InputNumSellTraps*2-1)*2; // 売りトラップの幅
}
この6行目の前半部分で残高を取得してます。
後ろの掛け算は、残高のうち使用するパーセンテージ(初期設定項目)を小数に変換してかけてます。
この前半部分を残高とクレジット(入金ボーナスなど)の合計にしてやればいいはずです。
クレジットは、AccountCredit()関数で取得できます。また、残高もAccountBalance()関数で取得できるので、簡単な記載に書き換えます。
//+------------------------------------------------------------------+
//| トラップ情報取得
//+------------------------------------------------------------------+
void GetTrapInfo(struct_TrapInfo &in_st)
{
in_st.Balance = (AccountBalance()+AccountCredit())*(double)_InputBarancePercentage/100.0;
in_st.CenterPrice = (_InputRangeMAX+_InputRangeMIN)*0.5; // レンジの中央価格(レンジ上下限の平均)
in_st.BuyTrapWidth = (in_st.CenterPrice - _InputRangeMIN)/(_InputNumBuyTraps*2-1)*2; // 買いトラップの幅
in_st.SellTrapWidth = (_InputRangeMAX - in_st.CenterPrice)/(_InputNumSellTraps*2-1)*2; // 売りトラップの幅
}
コンパイルしてMT4へぶっこみます。
本当はデモ口座でテストしてからのがいいのですが、いきなり実戦投入。
初期設定はいじってないので持ってるポジションも自動で紐づけできるはず。
実行した結果です。きちんと利用可能残高が狙った数字になってます♪
これでボーナスも無駄なく投資に使えるようになりました。
しかし、約定するロット数が分からないのはちょっと気持ち悪いですね。
次はこの点も改善したいと思います。
それでは!
コメント