[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 665
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Считайте хаи и лоу не с нулевого бара, а с первого, на нулевом баре не может быть Бид меньше Мин.
double
Min=Bid, объявление переменных
Max=Bid,
____________________________________________________________________________________________
for (i=0;i<=20-1;i++) критерии открытия
{if (Low[i]<Min) Min=Low[i]:
if (High[i]>Max) Max=High[i];
}
if (................. &&Ask>Max)
{
Opn_B=true; // открытие Buy
}
if (................ &&Bid<Min)
{
Opn_S=true; // открытие Sell
}
___________________________________________________________________________________________
Сожалею, что в таком неприглядном виде - пришлось по памяти писать т.к код не работал и я его удалил. Но Вам, как профессионалу, должно быть понятно(я надеюсь).
____________________________________________________________________________________________
Вы мне льстите :)) Я такой же начинающий, как и вы...
Где-то так. Не проверял, так, от балды, на коленке написал...Ну так вот логика:
1. устанавливаете отложенный ордер с магиком, допустим 101 и сбрасываем флаг преобразования ордера в позицию, ну допустим ConvOrd=false;
2. проверяем появилась ли позиция с магиком 101, если да, устанавливаем флаг преобразования ConvOrd=true;
3. проверяем ConvOrd на истинность и если ConvOrd==true,
проверяем существование позиции с магиком 101 и если её нет -
значит она уже закрыта
{сбрасываем флаг ConvOrd=false; устанавливаем новый отложенный;}
Думаю, можно и без флагов обойтись...
Логика мне понятна, а вот как реализовать её в коде не знаю. Я перепробовал много вариантов но результата так и не добился. Думаю, что "чайник". Поэтому я и написал сюда. На стр.663 я показал свой код. Если есть желание - доделайте его или хотя бы конкретнее расскажите как мне его доделать. Спасибо.
Попробуйте проще, когда выставляете СеллСтоп ордер, запомните значение Тейкпрофита и, если Бид опустится ниже этой цены, выставляйте на Бай.
Попробуйте проще, когда выставляете СеллСтоп ордер, запомните значение Тейкпрофита и, если Бид опустится ниже этой цены, выставляйте на Бай.
Спасибо за совет! Я этот вариант уже пробовал но для реализации моей стратегии он не подходит.
Чёт-то не пойму никак, почему выставляются сразу две локирующие позиции. Логика такова:
При достижении эквити определённого кол-ва процентов прибыли от её прошлого значения, закрываем все позиции... Это работает как надо... Далее...
При снижении эквити на определённое кол-во процентов от её прошлого значения ищем позицию с самым большим убытком, определяем кто она... ну там Бай или Селл
и открываем локирующую позицию в противоположном направлении удвоенным лотом. Далее смотрим их суммарный профит (лосевой и локирующей) и, как только он становится больше,
ну допустим 10 пунктов, закрываем их нафиг...
По логике вещей на следующем тике должна сначала провериться эквити и, если там стало всё ОК, то далее продолжаем работать-с... Ежели опять всё бяка, значит ищем следующего сохатого...
Но вот чё-то он открывает у меня сразу два локирующих ... и Бай и Селл, причём, если лот был 0.1, то первый локирующий открывается удвоенным лотом = 0.2,
а второй опять его удваивает и уже открывается лотом 0.4 ... Соответственно, какой тут нафиг лок, если они друг с дружкой теперь воюют за место под Солнцем ... :(
Код прилагаю, мож кто ткнёт меня мо... пальцем.
Начиная с
//------------- Включение вывода убыточных позиций в ноль, если эквити упало на N процентов -----------------------
где-то косяк живёт...
СТРАНИЦА НОМЕР "666" :-)