alexey1979621: Спасибо, разобрал Ваш код. Ошибка на открытие действительно есть (глаз уже замылился). Поставил переделанный советник на демку, где уже открыты позиции по нашему Мейджику с суммарным положительным профитом. Однако, позиция не закрылась.
Я смотрю в новом коде (который ниже в посте) поменялся параметр по умолчанию, передаваемый в функцию:
int NumberOfPositions(string sy="", int op=-1, int mn=1114)
В первоначальном варианте был другой Магик. Я исправил в своём коде обращение к этой функции. Посмотрите под каким Магиком открыты сейчас ордера и поставьте в советнике этот номер Магика.
P.S. И использовать при наименовании переменных разные кодировки не есть признак хорощего тона... Я про:
Я смотрю в новом коде (который ниже в посте) поменялся параметр по умолчанию, передаваемый в функцию:
В первоначальном варианте был другой Магик. Я исправил в своём коде обращение к этой функции. Посмотрите под каким Магиком открыты сейчас ордера и поставьте в советнике этот номер Магика.
Нет по мейджику все правильно, тот который для EURAUD_AUDUSD - 1111, а тот который EURUSD_GBPUSD - 1114 (помогал исправлять другой человек). Оба варианта сделки не закрывают. Сижу наблюдаю суммарный профит по EURUSD_GBPUSD, а закрыть его советником не могу. Переделал Ваш вариант для EURAUD_AUDUSD - 1111 под EURUSD_GBPUSD - 1114 тоже не закрывает сделки. Особенность совы в том, что нельзя ее проверить в тестере (т.к. две пары принимают участие в торгах) - только на демке.
Нет по мейджику все правильно, тот который для EURAUD_AUDUSD - 1111, а тот который EURUSD_GBPUSD - 1114 (помогал исправлять другой человек). Оба варианта сделки не закрывают. Сижу наблюдаю суммарный профит по EURUSD_GBPUSD, а закрыть его советником не могу. Переделал Ваш вариант для EURAUD_AUDUSD - 1111 под EURUSD_GBPUSD - 1114 тоже не закрывает сделки. Особенность совы в том, что нельзя ее проверить в тестере (т.к. две пары принимают участие в торгах) - только на демке.
Нет по мейджику все правильно, тот который для EURAUD_AUDUSD - 1111, а тот который EURUSD_GBPUSD - 1114 (помогал исправлять другой человек). Оба варианта сделки не закрывают. Сижу наблюдаю суммарный профит по EURUSD_GBPUSD, а закрыть его советником не могу. Переделал Ваш вариант для EURAUD_AUDUSD - 1111 под EURUSD_GBPUSD - 1114 тоже не закрывает сделки. Особенность совы в том, что нельзя ее проверить в тестере (т.к. две пары принимают участие в торгах) - только на демке.
Во-первых, Вы не правильно обращаетесь к индикатору. У этого индикатора куча внешних параметров:
externstring Symbol1.Name = "EURUSD";// Название инструмента 1externbool Symbol1.Reverse = false; // Является ли инструмент 1 реверсивным (с обратной корреляцией) // по отношению к остальным инструментамexternstring Symbol2.Name = "USDCHF";// Название инструмента 2externbool Symbol2.Reverse = false; // Является ли инструмент 2 реверсивным (с обратной корреляцией) // по отношению к остальным инструментамexternstring ___MISC___ = " == Прочие настройки ==========";
externbool UseVolatility = True ; //отрисовка с учетом волатильностиexternbool Triangle = True ; // Рисовать треугольник?externcolor Triangle.Color = DarkSalmon; // Цвет треугольникаexterndoubleAlert.ChannelMore = EMPTY; // Если ширина канала больше указанной, включается сигнал// -1 - контроль выключен.externdoubleAlert.ChannelLess = EMPTY; // Если ширина канала меньше указанной, включается сигнал// -1 - контроль выключен.externstring __VOL___ = " == Расчет объемов ====";
externint VOL.Mode = 3; // Режим расчета объемов для торговли// 1 - по ценам открытия// 2 - по волатильности, а если невозможно - по ценам открытия// 3 - по волатильности (если возможно) и ценам открытияexternint VOL.PeriodATR = 144; // Период усреднения ATR externstring ___MA___ = " == Параметры МА ценовых линий ====";
externint MA.Slow = 21; // Период медленной МАexternint MA.Fast = 8; // Период быстрой МАexternint MA.Method = 2; // Метод аппроксимации// - MODE_SMA=0 Простое скользящее среднее // - MODE_EMA=1 Экспоненциальное скользящее среднее // - MODE_SMMA=2 Сглаженное скользящее среднее // - MODE_LWMA=3 Линейно-взвешенное скользящее среднее externint MA.Price = 6; // Расчетная цена:// - PRICE_CLOSE=0 Цена закрытия // - PRICE_OPEN=1 Цена открытия // - PRICE_HIGH=2 Максимальная цена // - PRICE_LOW=3 Минимальная цена // - PRICE_MEDIAN=4 Средняя цена, (high+low)/2 // - PRICE_TYPICAL=5 Типичная цена, (high+low+close)/3 // - PRICE_WEIGHTED=6 Взвешенная цена закрытия, (high+low+close+close)/4
и их нужно перечислять при вызове индикатора. Если их упускать, то параметры будут браться по умолчанию, а так как Вы хотите использовать для разных валютных пар, то этот вариант не подходит. А всё остальное можно сделать с учётом изменения параметров при запуске советника:
запустите советник, поставьте профит равный нулю и посмотрите, что получилось и что в логах.
Получилось страшное. С Вашими изменениями и профитом равным 0 Советник закрыл вообще все позиции по Мейджикам 1111, 1112, 1113, 1114, 1115. Потом через секунд 5 открылись новые ордера по этим Мейджикам, через 10 секунд они все закрылись и все повторилось сначала. При это позиции открывались не парно, а хаотично.
Получилось страшное. С Вашими изменениями и профитом равным 0 Советник закрыл вообще все позиции по Мейджикам 1111, 1112, 1113, 1114, 1115. Потом через секунд 5 открылись новые ордера по этим Мейджикам, через 10 секунд они все закрылись и все повторилось сначала. При это позиции открывались не парно, а хаотично.
Наводящий вопрос - сколько советников у Вас стоит на этом счете?
И у Вас ведь было условие - по профиту закрыть все ордера.
PS Вы увидели какой подводный камень у Вас есть в этом советнике - он будет продолжать открывать ордера после закрытия, что в конце концов приведет к сливу. Поэтому надо ставить флаг, запрещающий выставлять новые одера, до тех пор пока условия не пройдут и возникнут вновь.
Во-первых, Вы не правильно обращаетесь к индикатору. У этого индикатора куча внешних параметров:
и их нужно перечислять при вызове индикатора. Если их упускать, то параметры будут браться по умолчанию, а так как Вы хотите использовать для разных валютных пар, то этот вариант не подходит. А всё остальное можно сделать с учётом изменения параметров при запуске советника:
Спасибо. Про вызов индикатора я знаю. Но настраиваемые параметры индикатора надо перечислять, когда мы их будем применять при тестировании или в работе, а поскольку этот советник протестировать в тестере невозможно (т.к. две пары принимают участие в торгах) - то подобрать эти параметры на истории просто невозможно. Последний Ваш вариант уже засунул в демку, сделки открылись - буду смотреть как закроются. Еще маленький вопрос у нас по двум инструментам сделки открываются или в селл или в бай, а если нам нужно одну открыть в селл по одному инструменту, а по другому в бай, тогда как? Я потыкал, не получилось ..... Еще раз большое спасибо за труд.
Наводящий вопрос - сколько советников у Вас стоит на этом счете?
И у Вас ведь было условие - по профиту закрыть все ордера.
PS Вы увидели какой подводный камень у Вас есть в этом советнике - он будет продолжать открывать ордера после закрытия, что в конце концов приведет к сливу. Поэтому надо ставить флаг, запрещающий выставлять новые одера, до тех пор пока условия не пройдут и возникнут вновь.
Советников работало 5 (братья близнецы - под разные пары), естественно с разными Мейджиками.
Да условие по профиту закрывать ордера было, но ордера относящиеся к конкретному советнику, скажем, с мейджиком 1114. Я писал об этом с самого начала, полагая, что сова при закрытии просто не видит свои ордера, а оказывается он видит все и очень хочет их закрыть, а нужно не все, а конкретные.
Подводный камень увидел, но не такой уж он подводный, если брать период Н4, то при расположении линий индикатора выше 0.1 и ниже -0.1 условие выполняется и сделки открываются, т.е. можно брать несколько профитов при одном сигнале (хотя есть и вариант закрывать сделку, когда линии индикатора сойдутся).
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Спасибо, разобрал Ваш код. Ошибка на открытие действительно есть (глаз уже замылился). Поставил переделанный советник на демку, где уже открыты позиции по нашему Мейджику с суммарным положительным профитом. Однако, позиция не закрылась.
Я смотрю в новом коде (который ниже в посте) поменялся параметр по умолчанию, передаваемый в функцию:
В первоначальном варианте был другой Магик. Я исправил в своём коде обращение к этой функции. Посмотрите под каким Магиком открыты сейчас ордера и поставьте в советнике этот номер Магика.
P.S. И использовать при наименовании переменных разные кодировки не есть признак хорощего тона... Я про:
Глянь на эту строку
else if (order_type = OP_SELL()
И эту
Я смотрю в новом коде (который ниже в посте) поменялся параметр по умолчанию, передаваемый в функцию:
В первоначальном варианте был другой Магик. Я исправил в своём коде обращение к этой функции. Посмотрите под каким Магиком открыты сейчас ордера и поставьте в советнике этот номер Магика.
Нет по мейджику все правильно, тот который для EURAUD_AUDUSD - 1111, а тот который EURUSD_GBPUSD - 1114 (помогал исправлять другой человек). Оба варианта сделки не закрывают. Сижу наблюдаю суммарный профит по EURUSD_GBPUSD, а закрыть его советником не могу. Переделал Ваш вариант для EURAUD_AUDUSD - 1111 под EURUSD_GBPUSD - 1114 тоже не закрывает сделки. Особенность совы в том, что нельзя ее проверить в тестере (т.к. две пары принимают участие в торгах) - только на демке.
Нет по мейджику все правильно, тот который для EURAUD_AUDUSD - 1111, а тот который EURUSD_GBPUSD - 1114 (помогал исправлять другой человек). Оба варианта сделки не закрывают. Сижу наблюдаю суммарный профит по EURUSD_GBPUSD, а закрыть его советником не могу. Переделал Ваш вариант для EURAUD_AUDUSD - 1111 под EURUSD_GBPUSD - 1114 тоже не закрывает сделки. Особенность совы в том, что нельзя ее проверить в тестере (т.к. две пары принимают участие в торгах) - только на демке.
Давай проведем некоторые изменения. Вместо
поставьте
запустите советник, поставьте профит равный нулю и посмотрите, что получилось и что в логах.Глянь на эту строку
else if (order_type = OP_SELL()
спасибо!)
Нет по мейджику все правильно, тот который для EURAUD_AUDUSD - 1111, а тот который EURUSD_GBPUSD - 1114 (помогал исправлять другой человек). Оба варианта сделки не закрывают. Сижу наблюдаю суммарный профит по EURUSD_GBPUSD, а закрыть его советником не могу. Переделал Ваш вариант для EURAUD_AUDUSD - 1111 под EURUSD_GBPUSD - 1114 тоже не закрывает сделки. Особенность совы в том, что нельзя ее проверить в тестере (т.к. две пары принимают участие в торгах) - только на демке.
Во-первых, Вы не правильно обращаетесь к индикатору. У этого индикатора куча внешних параметров:
и их нужно перечислять при вызове индикатора. Если их упускать, то параметры будут браться по умолчанию, а так как Вы хотите использовать для разных валютных пар, то этот вариант не подходит. А всё остальное можно сделать с учётом изменения параметров при запуске советника:
А о вызове индикатора почитайте здесь.
Давай проведем некоторые изменения. Вместо
поставьте
запустите советник, поставьте профит равный нулю и посмотрите, что получилось и что в логах.Получилось страшное. С Вашими изменениями и профитом равным 0 Советник закрыл вообще все позиции по Мейджикам 1111, 1112, 1113, 1114, 1115. Потом через секунд 5 открылись новые ордера по этим Мейджикам, через 10 секунд они все закрылись и все повторилось сначала. При это позиции открывались не парно, а хаотично.
Получилось страшное. С Вашими изменениями и профитом равным 0 Советник закрыл вообще все позиции по Мейджикам 1111, 1112, 1113, 1114, 1115. Потом через секунд 5 открылись новые ордера по этим Мейджикам, через 10 секунд они все закрылись и все повторилось сначала. При это позиции открывались не парно, а хаотично.
Наводящий вопрос - сколько советников у Вас стоит на этом счете?
И у Вас ведь было условие - по профиту закрыть все ордера.
PS Вы увидели какой подводный камень у Вас есть в этом советнике - он будет продолжать открывать ордера после закрытия, что в конце концов приведет к сливу. Поэтому надо ставить флаг, запрещающий выставлять новые одера, до тех пор пока условия не пройдут и возникнут вновь.
Во-первых, Вы не правильно обращаетесь к индикатору. У этого индикатора куча внешних параметров:
и их нужно перечислять при вызове индикатора. Если их упускать, то параметры будут браться по умолчанию, а так как Вы хотите использовать для разных валютных пар, то этот вариант не подходит. А всё остальное можно сделать с учётом изменения параметров при запуске советника:
А о вызове индикатора почитайте здесь.
Наводящий вопрос - сколько советников у Вас стоит на этом счете?
И у Вас ведь было условие - по профиту закрыть все ордера.
PS Вы увидели какой подводный камень у Вас есть в этом советнике - он будет продолжать открывать ордера после закрытия, что в конце концов приведет к сливу. Поэтому надо ставить флаг, запрещающий выставлять новые одера, до тех пор пока условия не пройдут и возникнут вновь.
Советников работало 5 (братья близнецы - под разные пары), естественно с разными Мейджиками.
Да условие по профиту закрывать ордера было, но ордера относящиеся к конкретному советнику, скажем, с мейджиком 1114. Я писал об этом с самого начала, полагая, что сова при закрытии просто не видит свои ордера, а оказывается он видит все и очень хочет их закрыть, а нужно не все, а конкретные.
Подводный камень увидел, но не такой уж он подводный, если брать период Н4, то при расположении линий индикатора выше 0.1 и ниже -0.1 условие выполняется и сделки открываются, т.е. можно брать несколько профитов при одном сигнале (хотя есть и вариант закрывать сделку, когда линии индикатора сойдутся).