Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Правильно ли я понял?
говорит, что нужно закрывать покупки. Тогда мы заносим тикет этого ордера в массив
далеее этот массив попадет в функцию
и все находящиеся в нем тикеты будут закрыты.
Тогда думаю что так
Очень похоже на правду (то, я не знаю, правильно ли будет работать выражение
, но внешне выглядит правильно).
Спасибо
Со стратегией есть проблемы В шаблоне неоткрывает ни одной позиции а те же условия вsтавлены в Moving Average Simple.mq4 если попадают первое открытие ордера на Бай то и все следующие на БАй и Сел небывает ну а если первый открытый ордер Сел то он незакрывается
Но наверное так и надо учится на ошибках
Еще раз спасибо вам
Если быдут вопросы по шаблону буду спрашивать Наверное неоткажите начинающему програмисту
Спасибо за статью. Очень полезная для меня доморощенного программиста любителя. Удобная для теста разных стратегий. Мне очень помогла. При более детальном разборе - выявил недописки в прилагаемом шаблоне.
Две в одной ф-ии void CalculateSL_and_TP, вот эти места:
-----
oldOpenPrice = openPrice;
oldSL = SL;oldTP = TP;
oldType=type;
------
if (newSL>0 || newTP>0 || newOpen>0){
sizeSL_TP=ArrayRange(arraySL_TP,0);
ArrayResize(arraySL_TP,sizeSL_TP+1);
-------
И в функции ожидания нового бара периоды Н4 и Д имеют одно значение.
Вроде так. По крайней мере без тех двух добавок - модифицировать ордера не желает...
Спасибо за статью. Очень полезная для меня доморощенного программиста любителя. Удобная для теста разных стратегий. Мне очень помогла. При более детальном разборе - выявил недописки в прилагаемом шаблоне.
-------
И в функции ожидания нового бара периоды Н4 и Д имеют одно значение.
Вроде так. По крайней мере без тех двух добавок - модифицировать ордера не желает...
Далее (блок 2) мы можем на основании торгового сигнала открыть позицию или выставить отложенный ордер. Почему можем, а не обязаны? Потому что блок открытия позиций принимает во внимание торговые сигналы, но исполнять их не обязан. Например, у нас уже есть открытые ранее позиции, и открытие новых может подвергнуть торговый счет излишнему риску.
Я так понимаю, в yourFunction прежде чем вернуть результат покупать, продавать или ничего не делать (res = OP_BALANCE) нужно проверить открыты-ли уже ордера. Но как это сделать, что-то я не соображу. Подскажите как именно проверить уже наличие открытой позиции?
NIN писал(а):
Я так понимаю, в yourFunction прежде чем вернуть результат покупать, продавать или ничего не делать (res = OP_BALANCE) нужно проверить открыты-ли уже ордера. Но как это сделать, что-то я не соображу. Подскажите как именно проверить уже наличие открытой позиции?
На самом деле факт наличия открытых позиций никак не должен влиять на оценку текущей ситуации - покупать, продавать, или оставаться в рынке. Это уже потом после получения сигнала на покупку или продажу необходимо думать как этот сигнал интерпретировать.
Да грубо говоря если условие сигнала бай — нахождение цены выше мувинга, то покупать будет на каждом тике (баре) когда цена находится выше. Я думал что ограничить такой конфуз надо проверкой есть ли уже открытые ордера. Если есть, то не докупать.
Но как проверить наличие открытой позиции?
Хотя бы так:
total = OrdersTotal();
//---------------------------------------- Проверка сигналов ------------------------------------------
if(total >= MaxTrades)
{
return;
}
else
{
Собственно проверка торговых сигналов и установка ордеров
}