Плюс еще рекомендации от Дмитрия Еремина (у меня было не так в коде):
1. Правила на открытие позиции должны стоять первыми
2. Правила закрытия позиции желательно добавить проверку на наличие позиции
Каналы > PriceChannel – ценовой канал или Канал Дончяна
-
- Сообщения: 47
- Зарегистрирован: 13 мар 2019, 00:45
- Благодарил (а): 37 раз
- Поблагодарили: 1 раз
-
- Сообщения: 23
- Зарегистрирован: 20 ноя 2016, 07:43
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: PriceChannel – ценовой канал или Канал Дончяна
Попробовал откатить.
Но! В файлохранилище вместо версии 1224 фактически грузится 1226.
Но! В файлохранилище вместо версии 1224 фактически грузится 1226.
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: PriceChannel – ценовой канал или Канал Дончяна
abelok писал(а):Попробовал откатить.
Но! В файлохранилище вместо версии 1224 фактически грузится 1226.
спасибо, переименовал файл.
никогда такого не было и вот опять
-
- Сообщения: 47
- Зарегистрирован: 13 мар 2019, 00:45
- Благодарил (а): 37 раз
- Поблагодарили: 1 раз
Re: PriceChannel – ценовой канал или Канал Дончяна
Код: Выделить всё
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 лот при любом раскладе.
Заранее благодарен
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя