Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 386
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хм... На счет изменения координат, я как-то не подумал. Спасибо за подсказку
Тогда такой вопрос. Есть условие точки входа. Я реализовал его через статические переменные, что бы с каждым тиком они не обнулялись. Так вот, в некоторых местах графика робот прорисовывает точку входа, где вообще нет горизонтальных уровней и, соответственно, их пересечения с MA. Прогоните пожалуйста код у себя в тестере и вы увидете проблему. На EURUSD. Может по другому нужно реализовывать задачу? Я не профи в программировании
То есть, появился паттерн, нарисовались уровни, и робот ждет три пересечения одного из уровней.
Какие есть мысли по этому поводу
Хм... На счет изменения координат, я как-то не подумал. Спасибо за подсказку
Тогда такой вопрос. Есть условие точки входа. Я реализовал его через статические переменные, что бы с каждым тиком они не обнулялись. Так вот, в некоторых местах графика робот прорисовывает точку входа, где вообще нет горизонтальных уровней и, соответственно, их пересечения с MA. Прогоните пожалуйста код у себя в тестере и вы увидете проблему. На EURUSD. Может по другому нужно реализовывать задачу? Я не профи в программировании
То есть, появился паттерн, нарисовались уровни, и робот ждет три пересечения одного из уровней.
Какие есть мысли по этому поводу
А кому оно надо, не сочтите за грубость? Ищите откуда робот получает какие значения и вы найдёте другое решение проблемы.
Помогите две выдает ошибку! Выделил ошибки красным, хелп ПЛЗ!
//+------------------------------------------------------------------+
//| Trailing Stop by Asyll.mq4 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Alibek Asyll"
#property link "https://www.mql4you.com"
extern int TralType = 0; // 0-Sar, 1-ATR, 2-HMA
extern double SAR_Step = 0.02;
extern double SAR_Max = 0.2;
extern int ATR_Period = 14;
extern double ATR_K = 2.0;
extern int MMA_Period = 16;
extern int MMA_Method = 3;
extern int MMA_Shift = 0;
datetime LBT;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//---
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
int start()
{
bool error = false;
if (LBT!=Time[0] {
if (OrdersTotal()>0) {
for (int i=o; i<OrdersTotal(); i++) {
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
double SL = OrderStopLoss();
if (OrderType()==0) {
switch (TralType) {
case 0: SL = iSAR(NULL,0,SAR_Step, SAR_Max,0);
break;
case 1: SL = High[1] - iATR(NULL,0,ATR_Period,1)*ATR_K;
break;
case 2: SL = iCustom(NULL,0,"VininI_HMA_sound&",HMA_Period, HMA_Method, 3, HMA_Shift,false,false,"",1,0,0);
break;
}
if (SL<OrderStopLoss())
SL = OrderStopLoss();
}
if (OrderType()==1){
switch (TralType){
case 0: SL = iSAR(NUll,0,SAR_Step, SAR_Max,0);
break;
case 1: SL = Low[1] + iATR(NULL,0,ATR_Period,1)*ATR_K;
break;
case 2: SL = iCustom(NULL,0,"VininI_HMA_sound&",HMA_Period, HMA_Method, 2, HMA_Shift,false,false,"",1,0,0);
break;
}
if (SL>OrderStopLoss())
SL = OrderStopLoss();
}
if (SL!=OrderStopLoss()) {
if (!OrderModify(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0))
error = true;
}
}
if (!error)
LBT = Time[0];
}
return();
}
//+-------------------------------------------------------------------+
Для вставки кода есть смысл использовать кнопку SRC. Сообщите текст ошибок. Для ускорения работы эксперта удалите текст:
На вызов этих функций уходит время - а они пустые. И без них с текстом программы будет легче работать. Посчитайте фигурные скобки. Для облегчения этого попробуйте Стилизатор в меню Сервис. Выбросьте пустые строчки.
Всем доброго времени суток.
У меня есть простая идея, которую я пытаюсь закодировать и протестировать на тестере МТ-4
Открывать ордера при одновременном наличии следующих условий
1. На открытии минутной свечи
2 По нужной мне цене
3.В нужный мне день
4.Значение цены должно строго совпадать со значением дня.
Например 27 числа была минутная свеча с ценой открытия 1.2414
Мне нужно открыть ордер 1) на открытии свечи 2) по цене 1.2414 3 )НО НА БЛИЖАЙШИЙ ДЕНЬ, КОТОРЫЙ СЛЕДУЕТ ПОСЛЕ 27 числа
Например 28 числа была минутная свеча с ценой открытия 1.2438
Мне нужно открыть ордер 1) на открытии свечи 2) по цене 1.2438 3) НО НА БЛИЖАЙШИЙ ДЕНЬ, КОТОРЫЙ СЛЕДУЕТ ПОСЛЕ 28 числа
Например 12 числа была минутная свеча с ценой открытия 1.2451
Мне нужно открыть ордер 1) на открытии свечи 2) по цене 1.2451 3) НО НА БЛИЖАЙШИЙ ДЕНЬ, КОТОРЫЙ СЛЕДУЕТ ПОСЛЕ 12 числа
Для реализации этой идеи я начал изучать тему массивов и создал два одномерных массива.Но задуманное не получается
Буду Вам очень признателен если исправите мой код для того что бы он реализовывал вышеизложенную идею
Я тугодум, и поэтому буду очень признателен, если напишете правильной код, а не объясните на словах.
Так я пойму гораздо быстрее
Вот мой код.
Здравствуйте! Написанный код предназначен для перемещения сигнальных уровней в момент выхода цены за верхний либо нижний уровень, но этого не происходит. Подскажите пожалуйста в чем ошибка.
Мне нужно открыть ордер 1) на открытии свечи 2) по цене 1.2414 3 )НО НА БЛИЖАЙШИЙ ДЕНЬ, КОТОРЫЙ СЛЕДУЕТ ПОСЛЕ 27 числа
Вот мой код.Во-первых, нормализовать уже нормализованную BID вряд ли целесообразно, если только преподаватель велит
Во-вторых, это что же получается? 27-го числа появилась цена, и Вы срочно заносите в массив данные, чтобы 28-го сработало? А если 28-го срочные дела помешают? В массив заносят данные, которые сложно вычислить. Ваши данные должны вычисляться. Советую отлаживать советник по шагам. 1) определить требуемую цену и вывести на экран с помощью функции Alert(). Убедившись в правильности - вычислить и вывести следующее ... и так до конца. Писать до конца весь код преждевременно, т.к. по море отладки его придется менять. Как вы смотрите на такую технологию от простого к сложному?
Давайте посмотрим, что тут написано. Во-первых, надо строки короче. На экране уместятся и компилятору быстрее
Если BID больше, то сделать кое-что. Далее если BID меньше, то сделать то же самое. Можно сформулировать короче: Если цена больше или меньше, то ...Вы пишете в комментариях что-то о перемещении чего-то, а сами всего лишь удаляете все объекты. Ваши 10 строк заменяются четырьмя
НО !!! Признак OR надо бы как-то использовать далее? Похоже, вместо обнуления этой OR на это место надо вставить создание новых объектов. А еще проще - вместо удаления объектов просто переместить их на новое место - это всего 3 строки кода. Или преподаватель требует больше?
От простого с ложному или наоборот?Во-первых, нормализовать уже нормализованную BID вряд ли целесообразно, если только преподаватель велит
Во-вторых, это что же получается? 27-го числа появилась цена, и Вы срочно заносите в массив данные, чтобы 28-го сработало? А если 28-го срочные дела помешают? В массив заносят данные, которые сложно вычислить. Ваши данные должны вычисляться. Советую отлаживать советник по шагам. 1) определить требуемую цену и вывести на экран с помощью функции Alert(). Убедившись в правильности - вычислить и вывести следующее ... и так до конца. Писать до конца весь код преждевременно, т.к. по море отладки его придется менять. Как вы смотрите на такую технологию от простого к сложному?
Спасибо большое за подсказку.
Но как мне кажется, что в своих рассуждениях Вы исходите из того, что я пытаюсь написать ТОРГУЮЩИЙ советник.
Извините, что я не сказал Вам, что это не так.
Я пытаюсь при помощи советника только протестировать наличие некоторой закономерности, корреляции между вышеприведенными параметрами, то есть подтвердить или опровергнуть идею, которая может лечь в основу уже ТОРГУЮЩЕГО советника.
Поэтому буду Вам признателен, если поправите мой код, так что бы все происходило в соответствии с моим вышеизложенным замыслом.
А Ваши замечания мне конечно пригодятся при написании торгующего советника.
Спасибо
Спасибо большое за подсказку.
Но как мне кажется, что в своих рассуждениях Вы исходите из того, что я пытаюсь написать ТОРГУЮЩИЙ советник.
Извините, что я не сказал Вам, что это не так.
Я пытаюсь при помощи советника только протестировать наличие некоторой закономерности, корреляции между вышеприведенными параметрами, то есть подтвердить или опровергнуть идею, которая может лечь в основу уже ТОРГУЮЩЕГО советника.
Поэтому буду Вам признателен, если поправите мой код, так что бы все происходило в соответствии с моим вышеизложенным замыслом.
А Ваши замечания мне конечно пригодятся при написании торгующего советника.
Спасибо
Простите, что встреваю. Но... А чем логика построения линий должна отличаться у торгующего и неторгующего советников?
Когда вы на работе, вы по-другому смотрите на часы на руке по сравнению с тем, как на них смотрите дома?