#1404

еще возникли вопросы: Можно ли сделать чтобы один советник сразу по нескольким парам работал, не прикручивая советник к определенному графику?

Изменено 2 июля, 2018 пользователем Sacred70

#1405

Можно ли сделать чтобы один советник сразу по нескольким парам работал, не прикручивая советник к определенному графику?

Можно. Но есть нюансы - вешать сову надо на график с максимально частыми приходами тиков или запускать анализ ситуации по парам через таймер (что лучше), иначе тик по фунту пришёл, а по евре, где стоит сова - не пришёл и в итоге сова пропустила время закрытия.
Короче, в Вашем случае только таймер. Но тестировать сову в МТ4 не получится...
А к чему Вам такие заморочки? ставьте несколько сов, если сможете разбогатеть - закажете сову с пропеллером и перламутровыми пуговицами.
#1406
0ll

и перламутровыми пуговицами


вообще хотел с заклепками)))
А если без шуток, то еще вопрос возник. Хочу сделать выбор условий входа в настройках совы. Как это лучше сделать?
я это вижу как то так, но пока не проверял
extern bool _1 = 1; // условие номер 1
extern bool _2 = 0; // условие номер 2
bool_1 = само условие 1;
bool_2 = само условие 2;
#1407
Sacred70 есть разные условия и их сочетания, я не знаю что Вы хотите. Оба условия будут проверяться последовательно, или должно отрабатывать только одно.
В меню можно сделать выпадающий список см. справку "enum":
enum months // перечисление именованных констант
{ January, February, March, April, May, June, July, August, September, October, November, December };
input months Month = January; // январь это 0 и далее по-порядку

Пробуй, может понравится...
#1408

Добрый день. Написал с Вашей помощью сову, на тестах все хорошо, все пишется построчно в файл, но при установки на график в реальном времени кроме сообщения о начале работы советника, ничего больше нет, хотя глядя на график я вижу моменты когда все усдовия сходились и советник должен был отписаться, чего не происходит. С чем это может быть связано? (Брокер альфа форекс и терминал взят у них, счет реальный, но не пополнен, так же не так давно альфа перестала работать с гражданами РФ, но терминал у меня все таки запускается)

#1409
Sacred70 надо понять нет сигнала или не пишется в файл. Для этого в функцию Write добавь Print(text); потом глянешь в журнал если принты есть а записи в файл нет - значит сигналы были и косяк с файловыми операциями. если принтов нет - что-то с сигналами...
#1410
0ll
Принтов нет. Изменил условия на самые банальные, за 12 часов работы все по нулям. В журнале только одно сообщение loaded successfully, как я понял это сообщение о запуске совы. Тест работает, реал нет. Где еще можно глянуть решение проблемы?
#1411

Принтов нет

т.е. Принт Вы вставили, но в Журнале ничего нет. Это значит, имхо, нет команды от функции Сигнал. Ставьте Принты теперь в функцию Сигнал - видимо какой-то индюк косячит...
#1412
0ll

в условии сейчас не прописан не один индюк, там просто Close[1]>Open[1] и обратная комбинация для второго условия. или то что индюки заявлены в коде тоже играет роль? Вообщем добавил принт в сигнал и закоментил все заявление индюки

В итоге все вроде заработало, походу один из заявленных индюков болел. Усложню условия и еще посмотрю.

Изменено 4 июля, 2018 пользователем Sacred70

#1413

Здравствуйте! Подскажите, пожалуйста. Ситуация такая: нужно добавить ордер, например, на бай, когда у существующего выше цены сформировалось, допустим 3 фрактала. При добавлении ордера 2 - все замечательно, НО при этом сразу дается разрешение на ордер 3, поскольку ордер 1 соответствует условиям проверки. Не пойму как реализовать.
Код, на всякий случай.

Спойлер


bool AllowAddBuy=false;//глобальная перемен.
bool AllowAddBuyFunc(Play &play) //тут проверяем можно ли открыть ордер
{
/*1.Если нет откр.ордеров*/ if (OrdersTotal()==0)
{Print("BUY TRUE 0"); return (true); }

/*2.Если есть откр.ордера*/ if (isSuchOrderOpened(OP_BUYSTOP,play.timeframe)==-1 && isSuchOrderOpened(OP_BUY,play.timeframe)==-1) //функции проверки отсутствия соответ.ордеров
{Print("BUY TRUE 0.1"); return (true); }
else
{ for (int j=0; j { if (OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
if (StringCompare(OrderSymbol(),Symbol())!=0) continue;
if (OrderMagicNumber()!=Period()) continue;
/*2.1.Если есть отлож.орд.*/ if (OrderType()==OP_BUYSTOP) break;

/*2.2.Если есть откр. орд.,*/ if ((OrderType()==OP_BUY)&&(AllowAddBuy==false)) break;
/*но 1м фр. не выше цены*/

/*2.3.Если есть откр. орд.,*/ else {if ((AllowAddBuy==true) && isSuchOrderOpened(OP_BUYSTOP,play.timeframe)==-1)
/*нет отлож. И 1м фр. выше цены*/ {return (true); Print("BUY TRUE 1");}
}
}return (false);
}Print("AllowAddBuy=false; ничего нет???"); return (true);
}


//это кусок, из обработки открытых ордеров, после OrderSelect DnFr =getFractalsExtremum(PERIOD_M1,MODE_LOWER,3);
if(OrderType()==OP_BUY)
{
if (AllowAddBuy!=true)
{ if (DnFr>0 && (DnFr-5*Point) else {if (OrderType()==OP_BUY && (DnFr-5*Point)>OrderOpenPrice())
{ AllowAddBuy=true; Print("ALLOWAADBUY");}
}
}
}


При этом, если в условие выставляю сравнение SL и OpenPrice вместо фракталов, то, все работает. Толи потому что SL тоже к тикету привязан, толи я просто сейчас что-то не то делаю.

Изменено 5 июля, 2018 пользователем ветра

#1414
ветра я-бы посоветовал немного поправить алгоритм/логику, а именно:
- Сейчас: есть 1-ый ордер, после 3 фрактала = открытие нового
- Нужно: есть последний ордер и после 3 фрактала = ещё один ордер и регистрируем его как последний, тогда 3 ордер будет после следующих 3 фракталов.
#1415

В смысле вот так их перебирать? for (int j=OrdersTota j>=0; j--)

#1416
ветра нет, ордера перебирать не нужно.
Вы описали алгоритм: открываем ордер и в случае 3 фракталов выше цены - открываем следующий. так?
Как Вы ищите фракталы? - видимо считаете в буфере индюка или в своём алгоритме если цена фрактала выше цены ордера и дата фрактала больше даты ордера... как-то так? Значит базой поиска фрактала выступает цена и дата ордера.
Следующий шаг - при открытии 2 ордера нужно заменить базу поиска фракталов новой, а именно ценой и датой 2 ордера, тогда 3 ордер не откроется, пока не выполнятся условия.
Поиск последнего ордера надо в ините делать (на случай переинициализации совы), а внутри совы хранить тикет или параметры последнего ордера в структуре или переменных.

ПС: может я не туда рою... - прости.
#1417

Наоборот! Большое спасибо за помощь и совет! Все равно какие-то полезные мысли рождаются, даже если копать не туда. А вдруг именно туда и надо копать, вообще.))
Сейчас нет учета времени, есть только простая функция поиска фракталов в нужную сторону и на нужном тф. Стоп по ним таскается без проблем, даже если ордеров несколько и в разные стороны, а вот открываться - проблема((... Попробую еще через OrdersTotal-1 побороть, если не выйдет, тогда буду ваш совет реализовывать как-то.
Есть еще другой вопрос, вернее два. 1. Не могу найти как считать уровни MA те, что в терминале в свойствах индикатора в "Уровни" задаются. Надо сделать канал MA по индикатору. Думала, что это просто минус от значения MA(на графике с ценой вроде так), но в применении средней к индикатору, оно погоду на юпитере считает. Толи там % от MA толи еще чего... Ну или руки кривые 2. iMAonArray по RVI тоже отличается от того, что в терминале руками делается. Так может/должно быть или код кривой опять же?

UPD Вроде получилось с последним ордером с OrdersTotal-1, сейчас буду подсовывать разные ситуации, надеюсь все будет стабильно. Спасибо огромное за идею/подсказку!!!

Изменено 6 июля, 2018 пользователем ветра

#1418
ветра имейте в виду, если сова будет торговать на нескольких графиках или будет несколько разных сов в терминале, то OrdersTotal-1 может выдать чужой ордер и всё пропало... Для тестов - сойдёт.
#1419

1. Не могу найти как считать уровни MA те, что в терминале в свойствах индикатора в "Уровни" задаются. Надо сделать канал MA по индикатору. Думала, что это просто минус от значения MA(на графике с ценой вроде так),


Честно говоря, "залип" по уровням... никогда не видел применения. Посмотрел- точно есть :)
ИМХО, уровень - это цена МА +/- ХХ пипсов (то, что задается в настройке индикатора).
Если я правильно понял вопрос...
#1420
Цитата

ветра имейте в виду, если сова будет торговать на нескольких графиках или будет несколько разных сов в терминале, то OrdersTotal-1 может выдать чужой ордер и всё пропало...


Я вот такую штуку нашла, в закромах интернета
Спойлер

int GetLastTicket(int typ=-1,int magic=-1,string sy="")
{int i;
for(i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(sy !=""){if(OrderSymbol()!=sy){continue;}}
if(magic>=0){if(OrderMagicNumber()!=magic){continue;}}
if(typ >=0){if(OrderType()!=typ){continue;}}
return(OrderTicket());
}
}
return(0);
}

, так что по идее не должен.

Цитата

ИМХО, уровень - это цена МА +/- ХХ пипсов (то, что задается в настройке индикатора).

Казалось бы, но...)) В применении такого канала к, например, RVI я всякие варианты ему подсовывала, что-то похожее получилось только с MA+-0.05, что и навело меня на мысль о проценте. Но все равно, получилась полная ерунда и пришлось брать боллинджер, хотя он невполне подходит. Хотя я и просто со средней по RVI подружиться не смогла, так что это могут быть и кривые руки.) Почему, собственно и спрашиваю-то, чтоб понять в чем подвох.

Изменено 6 июля, 2018 пользователем ветра

#1421
ветра да, функция работать будет, хотя для меня не понятно почему просто не запомнить параметры последнего ордера при его открытии...
Про индюки ничего не подскажу - не владею темой, чужими индюками не пользуюсь...
#1422

хотя для меня не понятно почему просто не запомнить параметры последнего ордера при его открытии...


так все просто - я финансист и бизнес-аналитик с ооочень легкими навыками программирования. мне в разы легче разработать систему, чем написать ее. просто в данном случае система на 15мин круглосуточная - руками торговать ее нереально, так что пришлось писать, потому как перспективная. реализую алгоритм по методу наименьшего сопротивления: чем могу. когда не получается, приходится учиться делать по-другому. и да, такую сову на реал не запустишь, но для тестов мне пока хватит, если перспективность оправдается, буду думать как быть дальше. Спасибо вам за помощь!
#1423

Добрый день. Вопрос по уже написанному с Вашей помощью советнику(тот что все в текстовый файл пишет): время от времени сохраняет не весь текст который должен сохранять за раз, иногда пропускает 4-5 символов вначале строки, а иногда и вообще 15-20, оставляя пару последних букв, с чем это может быть связано?

#1424
Sacred70 это новость для меня - я редко в файлы пишу... Даже не знаю с чем это может быть связано. Параллельные Принты нормально пишут?

#1425

В сем здравствуйте, подскажите можно советника сМТ4 переделать под МТ5. Или может есть такой, первая сделка по направлению свечи у меня на М5 если после пошла в обратку открывает в другую сторону а первую по мартину прибавляет и так каждые 5 минут

#1426

Здравствуйте!
Хотелось бы немного переделать советника.
Кто-нибудь возьмётся? За оплату.

Советник вспомогательный к основному. Устанавливает отложенные ордера.
Во вложении описание.

Изменения:
1.Чтобы устанавливал не 3 отложенных ордера, а 10. То есть всё так же, но не 3, а 10.
2.Добавить закрытие не только по стоп-лоссу и тейк-профиту, но и чтобы если основной советник закроется по своему сигналу, то и у этого ордера тут же закрывались бы. С отложками так и происходит, а вот сработавшие ордера "висят".

FxVoodoo_sup_Manual.pdf12 скач.
FxVoodoo-supplement-1.mq415 скач.

#1427

Добрый день, подскажите, есть 2 классных советника, очень удобные параметры , нашел оптимальные настройки для каждого.

Проверил на тестере ,везде открывается.
Проверил на демо с 1000 открываются

Проверяю на центовом счете - не работает. С 100 дол , тоже не получается. - на реале.

Там есть графа с ключом , может в этом дело?

Помогите пожалуйста.

95Pips.rar26 скач.
BigDog.rar25 скач.

Изменено 20 июля, 2018 пользователем forexx2222

#1428

где тесты, мониторинг?

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025