
余剰資金に応じて、ロット数を調整
ある程度利益が積み重なってくると、1ポジション当たりのロット数を増やしたくなります。余剰資金に応じてロット数を増やすサンプルソースを紹介します。
急激に余剰資産が増えるわけはないので、 定期的に手動で設定することも考えたのですが、シミュレーションする際にロット数を自動で増やせるようにロジックを組込みました。
サンプルソース
extern string ロット数管理 = "==========================================================";
extern double tradeLots = 0; //トレードロット
extern double tradeLotsterm = 100000; //1ロット金額
extern double tradeMaxLots = 5; //マックスロット数
extern double tradeMinLots = 1; //ミニマムロット数
//-----------------------------------------------------------------------------
// ロット調整
//-----------------------------------------------------------------------------
double lots = 0;
if(tradeLots != 0){
lots = MarketInfo(SymbolPaire, MODE_MINLOT)*tradeLots; // ロットの最小値
}else{
lots = MarketInfo(SymbolPaire, MODE_MINLOT)
* MathMin(MathMax(MathFloor(AccountFreeMargin()/tradeLotsterm),tradeMinLots),tradeMaxLots);
}
ソース解説
トレードロット数の固定
tradeLots が設定されてない場合は、余剰資金をもとにロット数を調整します。 tradeLots が設定されている場合は、 tradeLotsの設定値でロット数を固定します。
extern double tradeLots = 0; //トレードロット
1ロット数当たりの余剰資金
1ロット数当たりの余剰資金をtradeLotsterm に設定します。下記の例だと10万単位でロット数を増やしていきます。
extern double tradeLotsterm = 100000; //1ロット金額
最大ロット数、最小ロット数
ロット数が増えるとダウンも大きくなるので、最大ロット数を設けられるようにしています。合わせて、最小ロット数も指定できるようにしています。
extern double tradeMaxLots = 5; //マックスロット数
extern double tradeMinLots = 1; //ミニマムロット数