Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#4601

Привет мастерам и не только)
Вопрос: написал простого бота на простом авторском индикаторе. Условия входа простые. С комментами прогнал - значения из буферов берет. Но сделок не открывает. Подскажите, в чем подвох?)

ВВ.rar3 скач.

#4602

Видел индикаторы, которые работают c данными из интернета. Как это cделать, если функция WebRequest не работает в индикаторах?

#4603

Ребята, почему возникает ситуация, когда бот пишет ошибку закрытия ордера, даже не открыв его?
И еще вопрос: как описать вход для осциллятора (стохастика, например)? С обязательным условием его захода за 80 и последующего выхода для продажи.

Изменено 8 июня, 2017 пользователем well72

#4604


Ребята, почему возникает ситуация, когда бот пишет ошибку закрытия ордера, даже не открыв его?
И еще вопрос: как описать вход для осциллятора (стохастика, например)? С обязательным условием его захода за 80 и последующего выхода для продажи.

Ошибку даёт наверное потому, что сова пытается закрыть несуществующий ордер.
Условие входа по пересечению уровня-80 снизу вверх (сверху вниз - знаки поменять местами):
если ( стох[1бар] > 80 && стох[2бара]
#4605



Ребята, почему возникает ситуация, когда бот пишет ошибку закрытия ордера, даже не открыв его?
И еще вопрос: как описать вход для осциллятора (стохастика, например)? С обязательным условием его захода за 80 и последующего выхода для продажи.

Ошибку даёт наверное потому, что сова пытается закрыть несуществующий ордер.
Условие входа по пересечению уровня-80 снизу вверх (сверху вниз - знаки поменять местами):
если ( стох[1бар] > 80 && стох[2бара]

Спасибо за ответ. А откуда бот берет несуществующий ордер? А по стоху вчера сам вчера додумался-таки)))
А по моему предыдущему сообщению (3752) ничего не можете посоветовать?
#4606

Ребят подскажите есть индикатор с исходником, как этот индикатор встроить в советник или все таки использовать iCustom()?

#4607

А откуда бот берет несуществующий ордер? А по стоху вчера сам вчера додумался-таки)))
А по моему предыдущему сообщению (3752) ничего не можете посоветовать?

Дело не в том где берёт, а в том как исполнение кода доходит до ОрдерКлоуз если нет ордеров? - вот и разбирайтесь! ставьте Принты и отслеживайте почему условие обхода ОрдерКлоуз не выполняется...
По предыдущему - ничего, у меня нет пока времени.

Ребят подскажите есть индикатор с исходником, как этот индикатор встроить в советник или все таки использовать iCustom()?

Это зависит от многих факторов, на каких барах будете использовать, сколько буферов и т.д. В общем случае проще iCustom().
#4608

Добрый день.
Честно сдаюсь, вот никак не додумаю сову.
Проблема все та же: нужно чтобы сигнал открывался в диапазоне 50 пунктов от Slope(те если цена превышает диапазон, то в сделки не входить )

SLOPE2.mq41 скач.
Новый_точечный_рисунок.jpg

#4609


Честно сдаюсь, вот никак не додумаю сову.
Проблема все та же: нужно чтобы сигнал открывался в диапазоне 50 пунктов от Slope(те если цена превышает диапазон, то в сделки не входить )

Трудно сове войти в сделки при таких условиях:
(LevelPunkt*Point)>dnPunkt
где (LevelPunkt*Point) = 400 * 0,00001 = 0,00400,
а dnPunkt = MathAbs ( Ask - iCustom(...) ) / Point; = 300!
Я же писал Вам совет выводить в Принт условия открытия и смотреть. Это делается так:
Print("Открываем OP_SELL: (LevelPunkt*Point)=",DoubleToStr(LevelPunkt*Point)," > dnPunkt=",DoubleToStr(dnPunkt));

Удачи!
#4610

Здравствуйте. Помогите пожалуйста. Я просмотрел видео по закономерностям паттернов Praice Action и попытался написать программу как в этом видео. В результате возникли ошибки:
1) Не рисуются горизонтальные линии по фибо и когда ставлю по ним торговать то вообще ничего не происходит.
2) Множество открытие ордеров по сигналу, не один. а просто очень много.
3) Сгружаемые данные в водятся в одну строку.
Я сам от программирования далек, но торгую по паттернам, по этому этот урок для меня актуален.
Плохо то, что видео плохого качества, а у меня опыта по программированию нет. Заранее благодарен.

PriceActionPatterns.mq410 скач.

#4611

Здравствуйте. Прошу помогите пожалуйста добавить условие в код. (Насколько моих знаний хватило я подредактировал.)
Индикатор рисует линии по цене закрытия, а нужно добавить условие, рисовать только если предыдущая свеча была противоположной. Т.е. только при смене направления(цвета) свечи, рисовать линию закрытия только той свечи которая сменила направление. Также "NumberOfBar" должна отвечать за количество показываемых линий.
p.s. Понимаю что возможно плохо описал, прилагаю картинку.

--candles_m-Candles_mX.mq42 скач.

#4612

Может кто сталкивался -
в сове считаю условие размера тела свечи,, затем запускаю в визуальном режиме сову на тест и наблюдаю что бывают случаи когда условие размера тела свечи просто пропускается и сова вваливается в рынок не по системе. Пробовал просматривать принтом, но пишет как и положено точное значение. В чем может быть причина того что условие то большую часть теста соблюдается, то нет?
---------------------

extern double BarRazmer_0_l = 5.0;
ZnachBar_h = MathAbs(Open[1] - Close[1]) / Point;
NormalizeDouble(ZnachBar_h,2)

#4613
sniv тяжело сказать в чём причина... если не путали 4/5 знак.
Однажды, на старых билдах, видел что терем запаздывал с записью баров в историю на реале, в тестере такого быть не должно. Выход один: при сигнале на открытие выводите в лог значения всех переменных, в том числе время бара, потом анализируйте на левых входах - ищите баг. Это стандартное решение - другого у программиста нет. Это-ж не нейронная сеть и баг будет найден!
#4614

Добрый день. Нужен СЧЁТЧИК ПУНКТОВ (ЦЕНОВЫХ РАЗМАХОВ) который может считать не только Суммарное Количество Пройденных Пунктов, но и отдельно Сумму Лонговых Пунктов и отдельно Сумму Шортовых Пунктов за каждый Тик Движения Цены при этом выводя все это на экран в виде "Гистограммного Индикатора ПУНКТОВЫХ ОБЪЕМОВ" (Пример на Скринах).

Не путать со СЧЁТЧИКОМ ТИКОВ! Это разные вещи! За один Тик цена может скакануть сразу на несколько Пунктов (особенно в период большой валотильности рынка)


Добавлено: 18-06-2017 11:55:29

СЧЁТЧИК ПУНКТОВ я нашел - кто может доработать его до подвальных Гистограммных Индикаторов?

ПУНКТ_LONG.png
ПУНКТ_SHORT.png
Deltastock_MetaTrader3.png
shetchik_pips.mq46 скач.

Изменено 18 июня, 2017 пользователем F.Zhukov

#4615

Индикатор написан для терминала до 600 билда. работает от последней свечи вглубь истории, что не очень корректно и требует много ресурсов. В общем я не в восторге. Попробовал втиснуть Ваше условие, пробуйте.

--candles_m-Candles_mX.mq47 скач.

#4616

Большое спасибо, Вы всегда очень отзывчивы и реально помогаете. Здоровья Вам и таких же приятных людей навстречу!
Индикатор кажется Ким писал, там в коде наверное читали? Да вы правы он старый, но я на этом скелете чуть не 5 индюков держу, на графике даже намека нет на тормоза и подвисание. Сейчас и опробую тут как раз через пару чашек кофе откроется.


Добавлено: 18-06-2017 20:46:43

Очень круто, еще раз спасибо. Реально то, что мне нужно было. Залезу в код посмотрю, может чему научусь.

Изменено 18 июня, 2017 пользователем Strong-Tezis

#4617

Может кто нибудь прикрутить время торговли в этот пипсовщик, чтобы можно было оптимизировать в тестере, только в часах, минуты не нужны , это по сути вот этот советник с сайта http://tradelikeapro.ru/million-dollar-pips/ только в открытом коде и какими-то доработками, нашел в интернете
Заранее спасибо

MillionDollarPips.mq49 скач.

#4618

В том то и дело, что пытался выводить принтом и как-то все норм. Однако в терминале freshforex такие агрехи с большей частью возникают после каких-то дыр в котировках на визуальном тесте. Жесткое завершение работы совы в return на этапе start'a по заданным условиям, тоже ничего не дало.

Изменено 19 июня, 2017 пользователем sniv

#4619

Приветствую уважаемую публику!
Сделала скрипты из 6 урока и при тестировании столкнулась с тем, что не всегда открываются 3 ордера, иногда 2, иногда 1, не важно будь то бай или селл. Что не так с этим скриптом?

Сама спросила сама отвечаю. Во время работы скрипта приходит новый тик и новая цена, поэтому ошибка 129 и ордер не может быть открыт. Чтобы этого избежать надо в стратегически важном месте вкрутить RefreshRates().

Цитата

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property script_show_inputs

input int OrderCount = 3;
input int Otype = OP_BUY; //0 Buy 1 Sell
input double Lots = 0.1; //Order lots
input int Slippage = 5;
input int Magic = 1111;

double price;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
Comment(" ");
for (int i = 0; i {

RefreshRates(); // Обновляем цену на случай если пришел новый тик

if (Otype == OP_BUY) price = Ask;
if (Otype == OP_SELL) price = Bid;

int ticket = OrderSend(Symbol(), Otype, Lots, price, Slippage, 0, 0, "", Magic, 0);
if (ticket Comment("Open order ERROR! " + GetLastError());
}
}



Изменено 20 июня, 2017 пользователем Nicole White

#4620

Пробуй. Там значения со знаком, целая часть часы, дробная минуты и секунды. Если нужны только часы, то шаг оптимизации делай целым.

MillionDollarPips.mq423 скач.

#4621

Oll, скажите, откуда такой код берется, в смысле нечитаемые имена функций и переменных?
Уже не первый раз вижу, думал, кто-то всех запутать хочет...

#4622

Здравствуйте. Пожалуйста, помогите научить индикатор находить максимальный размер верхней тени и максимальный размер нижней тени. То есть, за указанный в настройках индикатора промежуток времени или N - количество баров, найти максимальный размер верхней тени и максимальный размер нижней тени и вывести на экран в виде двух дополнительных комментариев снизу под уже имеющимися.

AverageRange.mq42 скач.

#4623

откуда такой код берется


Коммерческий советник выкладывается в компилированном (машинном) виде. Для того, чтобы его привести в читаемый, человеческий код, требуется декомпиляция. В результате компиляции и затем декомпиляции теряются все названия переменных и функций, вместо них создаются произвольные названия, которые вы можете видеть в выложенном выше исходном коде.

Иногда замена читаемых переменных и функций делается намеренно, чтобы запутать код и затруднить его модификацию и распространение.
#4624

0ll, спасибо, попробую с настройками времени повозится, ставить только в самые активные часы, когда спред минимальный. Советник, как я понял, ловит импульсы и выставляет отложку в противоположную сторону и входит на откатах от импульса, гонял на отрезке в 3 года, на паре EURCHF, со спредом 20 пунктов(5 знак) и 99% котировках, результаты в соотношении прибыль/просадка получились примерно 30/1, можно сказать вообще без просадки, единственная проблема это спред, отложки помогут избежать сильных реквот, думаю если уменьшить спред ограничением по времени торговли, запуская советник с самые активные часы с самым низким спредом, получится что-то выжать из него. Вообще никогда не использовал пипсовщиков, многие говорят что это бред, они очень чувствительны к брокеру и они безнадежны, в тоже время видел как некоторые разгоняют реальные счета вплоть до 500% прибыли за месяц роботами пипсовщиками, которые делают по 40-50 сделок в день. Буду пробовать оптимизировать и на центовике обкатывать, правда оптимизируется очень долго)

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

#4625

Посмотрите...
Забыл закомментировать Print в конце индикатора...

AverageRange_mod1.mq42 скач.

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

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

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