ダランベール法によるLot制御を行う
負け越し数が計算できていれば楽勝です。
負け越し数計算については以下を参照
//+------------------------------------------------------------------+
//| D'Alembert法によるロット数の計算 |
//+------------------------------------------------------------------+
double CalculateDAlembertLots(int losses)
{
double lotSize = initialLot * pow(1.1, losses);
// 最小取引数量、最大取引数量、数量ステップを考慮
lotSize = MathMax(lotSize, 0.1); // 最小取引数量
lotSize = MathMin(lotSize, 10.0); // 最大取引数量
// 数量ステップに合わせて丸める
lotSize = MathRound(lotSize / 0.01) * 0.01;
return lotSize;
}
使い方
double trade_lot = CalculateDAlembertLots(global_excessive_lossed);
Print(trade_lot);
MQL5コード一覧はコチラ