Вот так можно сделать:
//-----------------------------------------------------------------------------------------------------------------------+
int MaxLossOrders=3; // Это значение можно менять для установки
// количества убыточных ордеров в истории подряд;
int count=0;
for(int i=OrdersHistoryTotal()-1;i>i-MaxLossOrders;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderProfit() count++;
}
}
if(count>=MaxLossOrders)
{
Print("Количество убыточных ордеров подряд более заданного, эксперт будет удален!");
ExpertRemove();
}
//------------------------------------------------------------------------------------------------------------------------+
В этом варианте закрытые ордера не проверяются на принадлежность к какому либо инструменту или советнику. Просто если в истории появляются подряд три (настраивается изменением переменной MaxLossOrders)свежих убыточных ордера, то советник удаляется с графика. Но я бы вместо остановки эксперта с помощью ExpertRemove() установил бы флаг на разрешение/запрет торговли. Думаю это надежней.
Доработка советников: общая тема📌
От Garfik, 4 августа, 2011 в Уголок Программиста
Вообще я подумал, что речь идет о чужом эксперте, где нет исходника :">
ЦитатаСпасибо, то что нужно !!!
Да не за что собсно.... Хочу предупредить только, если в истории ордеров, на момент запуска советника, будут убыточные сделки подряд (в необходимом количестве), то экперт сразу же будет удален. l-) Имею ввиду простою вставку предложенного кода в Ваш код. Тут, как вариант, можно добавить фильтр ордеров по времени закрытия. Например, не учитывать ордера, закрытые до времени старта эксперта.
ЦитатаУважаемые человеки !! вставьте пожалуйста в сову Время начало работы советника(активировать сову "hh:mm")именно с минутами, а после взятия прибыли по TP_ сразу деактивировать советник, дабы избежать новых открытий.
Не знаю актуально еще или нет.... Было свободное время - сделал то, что просил ТС.
Добавил два вводных параметра:
StartTime - время старта советника. Ордера будут открываться после наступления этого времени.
StopAfterProfit - если true, то после закрытия сделок по тейку ордера больше открываться не будут, если false - соответственно работа после тейков продолжается.
Чтобы советник снова работал, его необходимо перезапустить.
Добавлено: 19-11-2016 16:30:43
Цитатагде же ты был раньше дружище.
Я здесь зарегистрировался два дня назад, поэтому не обессуть... >:d
Цитататолько время активации у тебя работает не правильно, всегда активируется в 00;00
А насчет того что время неправильно работает, так я только что проверил в тестере, все четко. Вот поставил 18 ноября 14:45
Видимо ты что-то не то делаешь... Нужно выставить дату и время. А ты, скорее всего, выставляешь только часы и минуты старта.
Вот скрин.

Изменено 20 ноября, 2016 пользователем DreamWorks
ЦитатаСпасибо, то что нужно !!!
Да не за что собсно.... Хочу предупредить только, если в истории ордеров, на момент запуска советника, будут убыточные сделки подряд (в необходимом количестве), то экперт сразу же будет удален. l-) Имею ввиду простою вставку предложенного кода в Ваш код. Тут, как вариант, можно добавить фильтр ордеров по времени закрытия. Например, не учитывать ордера, закрытые до времени старта эксперта.
... что то не то ( ... поставил на советника. Последние три сделки были в плюсе, а советник вырубился, хоть я и увеличил кол-во стоп-лоссов подряд до 10.
... что то не то ( ... поставил на советника. Последние три сделки были в плюсе, а советник вырубился, хоть я и увеличил кол-во стоп-лоссов подряд до 10.
Хм... Странно конечно. Тут все так просто, что я даже не представляю где может быть ошибка. :-/ Опишите как и куда вы вставили мой код. Конечно лучше бы полностью на код посмотреть.... Хотя от кода самого советника тут вряд-ли что-то зависит. Может у Вас в коде где-то присутствует еще какая-нибудь переменная (в глобальной видимости) с именем int count? Компилируется без ошибок и предупреждений?
Добавлено: 21-11-2016 06:35:37
А! Да, увидел ошибку. Замените вот этим:
//-----------------------------------------------------------------------------------------------------------------------+
int MaxLossOrders=3; // Это значение можно менять для установки
// количества убыточных ордеров в истории подряд;
int count=0;
int oht=OrdersHistoryTotal()-1;
for(int i=oht;i>oht-MaxLossOrders;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderProfit() count++;
}
}
if(count>=MaxLossOrders)
{
Print("Количество убыточных ордеров подряд более заданного, эксперт будет удален!");
ExpertRemove();
}
//-----------------------------------------------------------------------------------------------------------------------+
Изменено 21 ноября, 2016 пользователем DreamWorks
Всем доброго времени суток! :)
Не для кого не секрет, что совсем недавно вышло долгожданное обновление сетки с исправлениями (багфиксами), но к сожалению в новой версии нет очень важной для меня функции: открытия первого ордера по индикаторам RSI/CCI. Эту функцию как то реализовал master_255, за что ему отдельное спасибо. Так как не силен в программировании, прошу местных умельцев "прикрутить" открытие первого ордера по индикаторам RSI/CCI к новой версии сетки с этого поста. Старая версия (1,39) с уже реализованной такой функцией в скрепке (нужно просто перенести в новую)
Пояснения по опциям от master_255:
ЦитатаRsiMinimum и RsiMaximum заменил на RsiLevel, если RsiLevel например 20 то RsiMinimum=50-20=30 и RsiMaximum=50+20=70
Удобнее оптимизировать одно число.
CciLevel используется как максимум=CciLevel, минимум=-1*CciLevel
Таймфреймы и периоды индикаторов тоже вынес в настройки.
Изменено 19 декабря, 2016 пользователем Старик
Добрый день!
По аналогии вставил, не проверял.
Разделяю мнение ilnur17021992 - хотел попросить то же самое.
Кроме этого, у меня c 01/12/2016 работает 4 ДЕМО SETKA+ATR на ТФ от М1 до М30 на тех же парах, что и у maxand.
Очень хорошо работают, прошлую неделю прошли без слива. Но неудобно то, что работа с костыльком для запуска первых ордеров по каналу ATR делает невозможным использовать параметры Setka для мультивалютных торгов, да и оптимизацию никак не сделаешь.
Господа программисты, может кто-нибудь возьмется интегрировать костылек в Setka?
Сам костылек в приложении. Взят здесь /laboratoriya-profitfx/24/open-source-sovetnik-forex-setka-trader-mod-i-ea-setka/2738/?do=findComment&comment=322665
Всем привет,ребята подскажите как дописать одну функцию в советник.Максимальное количество открытых ордеров с выбором макс количества.
Всем привет,ребята подскажите как дописать одну функцию в советник.Максимальное количество открытых ордеров с выбором макс количества.
В начале программы:
input int maxOrders = 5;
А в условие ветки открытия ордеров вставляем условие:
OrderTotal()
Изменено 7 декабря, 2017 пользователем Pavel888
Есть наработки по советнику. Но нет знаний по добавлению некоторых ограничений. Добавьте, пожалуйста, открытие сделки только при появлении сигнала после установки на график. И если на инструменте уже есть открытый ордер, так же дожидаться сигнала и открывать ордер с закрытием открытого ранее.
Добавлено: 08-01-2017 09:51:39
Удалите тему. Более не актуально.
Изменено 8 января, 2017 пользователем remembaaa
Добрый день!
Нашел в сети удобный для меня советник, в программировании не силен, не могу изменить эксперта чтобы он компилировался на новом MetaEditor. Также необходимо прикрутить к нему локирование позиций после прохождения определенного количества пунктов от крайнего ордера.
Здравствуйте коллеги!
Прошу помочь изменить советник, найденный на просторах инета в свободном доступе.
Все в нем устраивает, но необходимо, чтобы при открытии ордера в направлении стрелки, СЛ выставлялся за Хай(Лоу) сигнальной свечи (т.е. свечи на которой появилась стрелка), а ТП выставлялся равным СЛ.
Очень прошу помочь.
Здравствуйте! Добавил два входных параметра :
АвтоСтоп=true; Вкл/выкл функцию выставления стопа и профита по Вашим условиям
ОтступСтоплосса=5; Отступ стоплосса от хай/лоу.
Проверяйте.
Изменено 23 января, 2017 пользователем DreamWorks
Проблема с советником, был неплохой. Хочу прогнать на новых терминалах, помогите пожалуйста исправить код.
Выдает ошибку компиляции в этих строках.
switch (MarketInfo(Symbol(), MODE_MINLOT)) {
case 0.001:
gd_240 = 3;
break;
case 0.01:
gd_240 = 2;
break;
case 0.1:
gd_240 = 1;
break;
case 1.0:
gd_240 = 0;
Помогите, пожалуйста. Сам не силен в программировании. Советник прилагается, вроде бы торговал неплохо.
ЦитатаПроблема с советником, был неплохой. Хочу прогнать на новых терминалах, помогите пожалуйста исправить код.
Выдает ошибку компиляции в этих строках.
Исправил.
Добавлено: 23-01-2017 19:29:14
bogus, кстати, не понял о каких стрелках идет речь? Я чет ничего не заметил, кроме боллинджера... Я не въезжал в код, просто сделал в куске открытия ордера то, о чем Вы просили.
Цитата...чтобы при открытии ордера в направлении стрелки, СЛ выставлялся за Хай(Лоу) сигнальной свечи (т.е. свечи на которой появилась стрелка), а ТП выставлялся равным СЛ.
Советник открывает сделки после закрытия свечи (видимо той, на которой появился сигнал). Т.е. сделка открывается с первым тиком свечи, следующей за сигнальной. Я сделал так, чтобы стоплосс выставлялся за хай/лоу последней закрытой свечи, перед той, на которой открывается сделка. Я прав?
Изменено 23 января, 2017 пользователем DreamWorks
DreamWorks, Вы правы, советник выставляет ордера по Болинжеру, просто мне удобнее для тестирования одной задумки, чтобы это было в виде сигнала (при тестировании в режиме визуализации появляются стрелочки).
Проверил Вашу доработку - все отлично работает. Спасибо большое.
Изменено 23 января, 2017 пользователем bogus
Приветствую коллеги!
В сентябре 2016 года на нашем форуме а в дальнейшем и в Роботесте автор по имени loower представил собственную разработку советника ПЕРЕВЕРТЫШ
/laboratoriya-profitfx/24/open-source-sovetnik-«perevertysh»-martingeyl/14580.
Стратегия проста, понятна и эффективна. Советник показывает положительную динамику и маленькую просадку. Моя личная торговля этим советником подтверждала все его положительные стороны. Однако автор прямо указал на "сырой" вид советника. В ходе торговли выявились некоторые ошибки: так робот при выключенной кнопке авто торговли продолжал выставлять ордера на парах закрывшихся по СЛ; на половине пар инструментов форекс, советник не выставляет СЛ,ТП (к примеру USDCHF).
Пользователи данного советника, просят ребят программистов посмотреть код на предмет очевидных ошибок.
P.S. Власову Паше человеческое спасибо.
Добрый вечер не подскажите как исправить ошибки в сове CrazyScalper-full ver 1.0MM+ КОТОРЫЕ нашел MetaEditor при компилировании?
И если есть возможность подскажите сову скальпера заранее спасибо!
И если есть возможность подскажите сову скальпера заранее спасибо!
/laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593
/laboratoriya-profitfx/24/open-source-sovetnik-quotgeneric-a-tlpquot-v13xx/15029
Добрый вечер не подскажите как исправить ошибки в сове CrazyScalper-full ver 1.0MM+ КОТОРЫЕ нашел MetaEditor при компилировании?
Перенос старых советников на новые билды MT4
Приветствую коллеги!
В сентябре 2016 года на нашем форуме а в дальнейшем и в Роботесте автор по имени loower представил собственную разработку советника ПЕРЕВЕРТЫШ
/laboratoriya-profitfx/24/open-source-sovetnik-perevertysh-martingeyl/14580/.
Стратегия проста, понятна и эффективна. Советник показывает положительную динамику и маленькую просадку. Моя личная торговля этим советником подтверждала все его положительные стороны. Однако автор прямо указал на "сырой" вид советника. В ходе торговли выявились некоторые ошибки: так робот при выключенной кнопке авто торговли продолжал выставлять ордера на парах закрывшихся по СЛ; на половине пар инструментов форекс, советник не выставляет СЛ,ТП (к примеру USDCHF).
Пользователи данного советника, просят ребят программистов посмотреть код на предмет очевидных ошибок.
P.S. Власову Паше человеческое спасибо.
Ребят, у Вашего бота диагноз один - пациент скорее мертв, чем жив. На 99,9% никто не захочет реанимировать то, что есть. Многие заблуждаются, думая, что для программиста великое благо, когда код уже как бы написан, но "сыроват". И уже вроде как все готово, осталось лишь малость поправить. Бывают действительно качественно написанные программы, в которых достаточно поправить самую малость, не вдаваясь в дебри кода. Но это не Ваш случай. Повторюсь в сотый, а может и в тысячный раз: проще написать нормально с нуля, чем править чужой код, с чужими ошибками и чуждой логикой написания. Тем более, что стратегия стара и проста. Я имею ввиду сам принцип. И это тоже причина глухой тишины в этом топике. Вывод такой. То, что есть, править никому не хочется, ибо трудозатраты сопоставимы с написанием с нуля, а с нуля писать - интереса нет.
Изменено 15 декабря, 2017 пользователем Pavel888
Пользователи данного советника, просят ребят программистов посмотреть код на предмет очевидных ошибок.
Исправил все предупреждения (около двухсот). Компилируется без ошибок.
Но если ошибка именно в самой логике совы, то:
проще написать нормально с нуля
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем