Код: Выделить всё
function Initialize()
{
StrategyName = "don2";
AddParameter("P1", 15, "", 1);
AddInput("Input1", Inputs.Candle, 10, true, "");
LongLimit = 0;
ShortLimit = 0;
UseClosedBar = false;
LiveBarTimeout = 1; // Вызывать не чаще чем раз в 10 секунд
}
function OnUpdate()
{
/// ПРАВИЛО 1
if ( (Input1.High[0] > MY.don(Input1, P1).GetValue("Upper", 0)) )
{
EnterLong();
}
/// ПРАВИЛО 3
if ( (Input1.Low[0] < MY.don(Input1, P1).GetValue("Lower", 0)) )
{
EnterShort();
}
/// ПРАВИЛО 2
if ( (Input1.Low[0] < MY.don(Input1, P1).GetValue("Midl", 0)) && CurrentPosition() > 0 )
{
CloseLong();
}
/// ПРАВИЛО 4
if ( (Input1.High[0] > MY.don(Input1, P1).GetValue("Midl", 0)) && CurrentPosition() < 0)
{
CloseShort();
}
if ( ( RealizedPL() + CurrentPL() ) < -9000.0 )
{
Stop();
}
ShowMessage(string.Format("close={0} high={1} low={2}", Input1.Close[0], Input1.High[0], Input1.Low[0]));
}
вот код который работает внутри бара.
Но нужно доработать код.
Начинаем с одного лота. После 2 подряд сделок в минус, открываем уже 2 лота, если третья в минус, то 4ая сделка уже 3 лота. Если опять минус, то так же 3 лота на 5ой сделке. После чего сброс на 1 лот при любом раскладе.
Заранее благодарен