Итог - без реального мониторинга совы в топку? Хотя наработки, рожденные в процессе, думаю, будут полезны.
Доработка советников: общая тема📌
От Garfik, 4 августа, 2011 в Уголок Программиста
Здравствуйте гуру в программировании, я в этом деле ноль, если кому не лень, посмотрите советничек, нужно разобраться с ошибками и сделать чтобы можно было вкл выкл торгуемые паттерны, выбирать периоды CCI, и чтоб в тестере фурычил. (ну и неплохо чтоб можно было настраивать торговлю как по фиксу так и по риску)
Спасибо заранне тому кто возьмется за сие занятие.
Здравствуйте! Спасибо что заглянули в эту тему, а не прошли мимо.
Перерыл интернет, но ни чего подобного, что мне надо не нашел.
Поэтому обращаюсь к вам. Кому не лень набросайте пожалуйста советник для выставления ЛИМИТНЫХ ордеров от цены открытия дня в обе стороны.
Есть скрипт, который во вложении. По его подобию нужен советничек вот с такими параметрами:
- В какой день торговать (1-понед, 2-вторник, и тд.)
- Торговать во все дни кроме одного (1-понед, 2-вторник, и тд.)
- В какое время выставлять ордера(ЧЧ:мм)
- Закрывать все что есть в конце пятницы (вкл/выкл)
- Расстояние от цены открытия ДНЯ до первого ордера
- Шаг между ордерами
- Количество ордеров
- Лот
- Умножение лота
- SL
- TP
- Удалять все ордера при срабатывании первого TP (вкл/выкл)
Если последний параметр Выключен, то при срабатывании ТP выставляем новый ордер на тоже место и с тем же лотом. Желательно для этой функции тоже сделать Вкл/выкл. Если Выкл, то сработал TP и все, больше ниче не ставим, оставляем все как есть.
Если к концу дня нет открытых ордеров, то все отложки удаляем, а если какой то ордер сработал, то ни чего не трогаем, ждем либо слива депозита, либо профита.
Если найдется добрый мастер, то огромнейшее спасибо ему!!!
В советнике есть выставление ордеров через степ, но всего три колена, а там в коде я нашёл что есть ещё колена. Помогите исправить чтобы все колена были доступны и работали. И чтобы можно было их включать и выключать.
extern int Step1 = 10;
extern int TP1 = 10;
extern int Step2 = 10;
extern int TP2 = 10;
extern int Step3 = 10;
extern int TP3 = 10;
int gi_120 = 0;
int gi_124 = 0;
int gi_128 = 0;
int gi_132 = 0;
int gi_136 = 0;
int gi_140 = 0;
int gi_144 = 0;
int gi_148 = 0;
int gi_152 = 0;
int gi_156 = 0;
int gi_160 = 0;
int gi_164 = 0;
int gi_168 = 0;
int gi_172 = 0;
Добавлено: 23-04-2015 08:29:29
Вот ссылка на советник
https://yadi.sk/d/8Bg9fOPYgBbfB
Изменено 23 апреля, 2015 пользователем cashyra
Основная цель данного советника это разруливания залокированной позиции, постепенное его раскрытие не теряя при этом депозита, а наоборот во время разруливания (раскрытия лока) еще и заработать.
В советнике есть параметр
NoLoss = 5; //перевод лок ордера в безубыток
Можно добавить ему в настройки, чтобы можно было его включать и выключать.
А то получается советник если даже лок не работает и ждёт включения просадка.для.открытия.лока = 50; //выставляем лок при достижении просадки в процентах от депо
то он всёравно ставит всем ордерам безубыток, а это может нарушить всю конструкцию лотов которые мы разруливаем. Ведь я его ставлю на советник котрый выставил много ордеров против тренда, типа илана.
https://yadi.sk/d/8F_Ip28UgT8MT
Здравствуйте,
Интересует следующие:
Можно ли автоматизировать торговлю по данному индикатору? Я не прошу это сделать но мне интересно с точки зрения специалистов, возможно ли это?
Ссылка на форуме:
_/torgovye-sistemy/2/m5-colorbar-forex-strategiya-za-2000-enotov/770
По любому индикатору можно. Если Вы видите это на графике - значит к этому можно получить доступ и анализировать в советнике.
Значит нужно будет разобрать выше указанный индикатор и собрать себе советник?
Посмотрев курс по этой ссылке справлюсь?
_/ugolok-programmista/13/obuchenie-yazyku-mql4-pod-metatrader-4/4034;topicseen
Прежде чем начать, его реально разобрать?
Поверхностно программированием я владею в ВБА простые могу делать коды и в Ц++ в свое время ковырялся.
Просто индикатор визуальный и строит графики. В зависимости от цветов и местоположение линий + точек открывается сделка. Открывается пользователем. На сколько я понимаю то в MQL программировать на распознавание цветов и их место положение не получится.
Значить мне надо просмотреть код индикаторов.
Разобраться от чего они работают т.е. ка стороят графики.
И соответственно программировать советника на открытие сделки если все необходимы "флаги" в индикаторе присутствуют. (Флаги - линии, точки и цвета сошлись в нужном порядке)
Приблизительно я это вижу таким образом.
Может это можно сделать проще?
Разный цвет линий, всякие точки - в разных буферах индикатора. Просто делается тестовый советник, подключаются все доступные буферы и смотрим что там лежит и как меняется...
Ок теперь другой вопрос.
Индикаторы в формате ех4 мне соответственно они нужны в mq4 чтобы добраться до кода (остановите меня если я что то не так понял). Есть ли автоматический декомпилятор или что то на подобии?
Для ex4 компилированных в 600+ билдах МТ декомпилятора нет и пока не предвидится...
Если индюк выпуска до 2014 г., то его можно декомпилировать, но Вам это не сильно поможет, просто подключайте его к сове и всё.
Если сделка пошла на Бай то все работает нормально. Как только сделка пошла на Сел то трейлинг не работает. В чем может быть проблема?
собственно код
extern int TrailingStop = 30;
extern int TrailingStep = 10;
extern int magic = 123;
extern int slippage = 5;
extern double Lots = 0.1;
extern int maperiod = 20;
extern int mashift = 1;
double ma, SL;
int time;
int OnInit()
{
if(Digits == 3 && Digits == 5)
{
TrailingStop *= 10;
TrailingStep *= 10;
slippage *= 10;
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
int start()
{
trailing();
if(time == Time[0]) return(0);
time = Time[0];
ma = iMA(Symbol(), 0, maperiod, mashift, MODE_SMA, PRICE_CLOSE, 1);
if(CountBuy() + CountSell() == 0 && Ask > ma)
OrderSend(Symbol(), OP_BUY, Lots, Ask, slippage, 0, 0, "", magic, 0, clrBlue);
if(CountBuy() + CountSell() == 0 && Bid OrderSend(Symbol(), OP_SELL, Lots, Bid, slippage, 0, 0, "", magic, 0, clrRed);
return(0);
}
//+------------------------------------------------------------------+
int CountBuy()
{
int count = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == OP_BUY)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == magic && OrderType() == OP_SELL)
count++;
}
}
return(count);
}
//+------------------------------------------------------------------+
void trailing()
{
for(int i = 0; i {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == magic)
{
if(OrderType() == OP_BUY)
{
if(Bid - OrderOpenPrice() > TrailingStop*Point)
{
if(OrderStopLoss() {
SL = NormalizeDouble(Bid - TrailingStop*Point, Digits);
if(OrderStopLoss() != SL)
OrderModify(OrderTicket(), OrderOpenPrice(), SL, 0, 0);
}
}
}
if(OrderType() == OP_SELL)
{
if(OrderOpenPrice() - Ask > TrailingStop*Point)
{
if(OrderStopLoss() > Ask + (TrailingStop + TrailingStep)*Point)
{
SL = NormalizeDouble(Ask + TrailingStop*Point, Digits);
if(OrderStopLoss() != SL)
OrderModify(OrderTicket(), OrderOpenPrice(), SL, 0, 0);
}
}
}
}
}
}
}
//+------------------------------------------------------------------+
Ничего не нашёл... вроде всё должно работать...
я второй раз сталкиваюсь с такой проблемой только в другом советнике так было . Я уже думаю может сервер тупит что то или тестер стратегий
Ничего не нашёл... вроде всё должно работать...
ставьте отладочную печать, выводите вход в функции и результаты их работы.
должны увидеть что не так.
И где журналы/логи тестов, которые показали вам вроде некорректную работу тралла?
Не надо нам рассказывать что ВЫ ВИДИТЕ - покажите нам ЧТО РЕАЛЬНО ПРОИСХОДИТ.
хорошо в след раз так и сделаю . С этой проблемой разобралась
ставьте отладочную печать, выводите вход в функции и результаты их работы.
должны увидеть что не так.
И где журналы/логи тестов, которые показали вам вроде некорректную работу тралла?
Не надо нам рассказывать что ВЫ ВИДИТЕ - покажите нам ЧТО РЕАЛЬНО ПРОИСХОДИТ.
Очень нужно!!! Вставить стоп лосс и звуковую озвучку, когда советник будет открывать сделку. Зараниее благодарен.
Изменено 15 мая, 2015 пользователем Mun3000
пробуй
пробуй
Сейчас гляну. Спасибо
Добавлено: 15-05-2015 12:26:25
пробуй
Чтото не так , он просто открыл пару сделок и потом все .Там как была торговля . Окрыли сделку в бай , потом пришол сигнал на продажу бай закрыли и открыли сел. И поетому , наверное , вышол конфликт потому что закриваемся по стопу или в ручную. и он больше не хочет откривать новые.
Изменено 15 мая, 2015 пользователем Mun3000
Ошибок исполнения нет? там код простой - он не может "не хотеть", наверняка хочет, но не может... :dИ поетому , наверное , вышол конфликт потому что закриваемся по стопу или в ручную. и он больше не хочет откривать новые.
Добрый день,
программисты, кто-нибудь может встроить индикатор ffcal в новостной советник AmazingEA, торгующий отложками?
Чтобы получился полный автомат?
Если кто-то возьмется, то просьба вывести в настройки советника 8 основных валют + CHN, для вкл.-выкл. торговли по ним.
а на экран - след. и прошедшую новости
Сова при компиляции выдаёт предупреждения, ошибки поправил, сам не запускал.
Изменено 20 мая, 2015 пользователем 0ll
Есть советник, хотел сделать что бы он работал в определенное время суток, нашел на просторах интернета такое решение:
extern bool PAUSE_NEWS = false;//пауза торговли
extern double HOUR_START_PAUSE =17;//час начала паузы
extern double HOUR_END_PAUSE = 10;//час окончания паузы
extern double DEI_START_PAUSE = 5;//день начала паузы
extern double DEI_END_PAUSE = 1;//день окончания паузы
extern double START_PAUSE = 0;//время начала ежедневного перерыва при > 0
extern double END_PAUSE = 6;//время окончания перерыва
С первой частью проблем нет, компилировал все ок
А вот со второй подскажите пожалуйста:
if(Hour()>= START_PAUSE&&Hour()0)
R=0;
if(DayOfWeek()>=DEI_START_PAUSE&&Hour()>=HOUR_STAR T_PAUSE && PAUSE_NEWS == true)
R=0;
if(DayOfWeek()R=0;
Возможно есть другие решения, буду очень признателен за помощь, всем профитов!)
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем