простой советник по стрелкам индикатора |
Здравствуйте уважаемые программисты! прошу сделать простой советник по стрелочному индикатору, чтобы сделки открывались и закрывались по сигналам алерта или по цветам стрелок (красная на продажу, зеленая на покупку). к советнику прикрепить лот, стоплосс и магик и больше ничего не нужно, чтобы советник работал строго по сигналам. для мт4 код индикатора #property copyright «60SecondTrades.com»
#property link ""
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
extern int ADXbars = 14;
extern int CountBars = 350;
extern string SoundFile=«Alert.wav»;
extern bool UseSound=true;
bool SoundBuy = False;
bool SoundSell = False;
double gda_84[];
double gda_88[];
double gd_92;
double gd_100;
double gd_108;
double gd_116;
int init() {
string ls_0;
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_ARROW);
SetIndexArrow(0, 108);
SetIndexStyle(1, DRAW_ARROW);
SetIndexArrow(1, 108);
SetIndexBuffer(0, gda_84);
SetIndexBuffer(1, gda_88);
return (0);
}
int start() {
if (CountBars >= Bars) CountBars = Bars;
SetIndexDrawBegin(0, Bars — CountBars);
SetIndexDrawBegin(1, Bars — CountBars);
int li_8 = IndicatorCounted();
if (li_8 < 0) return (-1);
if (li_8 < 1) {
for (int li_0 = 1; li_0 <= CountBars; li_0++) gda_84[CountBars — li_0] = 0.0;
for (li_0 = 1; li_0 <= CountBars; li_0++) gda_88[CountBars — li_0] = 0.0;
}
for (int li_4 = CountBars; li_4 >= 0; li_4--) {
gd_92 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_PLUSDI, li_4 — 1);
gd_100 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_PLUSDI, li_4);
gd_108 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, li_4 — 1);
gd_116 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, li_4);
if (gd_92 > gd_108 && gd_100 < gd_116) gda_84[li_4] = Low[li_4] — 5.0 * Point;
if (gd_92 < gd_108 && gd_100 > gd_116) gda_88[li_4] = High[li_4] + 5.0 * Point;
}
//+------------------------------------------------------------------+
if (gda_84[1] != EMPTY_VALUE && gda_84[1] != 0 && SoundBuy)
{
SoundBuy = False;
if (UseSound) PlaySound (SoundFile);
Alert(«SixtySecondTrades(», Symbol(), ", ", Period(), ") — BUY!!!");
}
if (!SoundBuy && (gda_84[1] == EMPTY_VALUE || gda_84[1] == 0)) SoundBuy = True;
if (gda_88[1] != EMPTY_VALUE && gda_88[1] != 0 && SoundSell)
{
SoundSell = False;
if (UseSound) PlaySound (SoundFile);
Alert(«SixtySecondTrades (», Symbol(), ", ", Period(), ") — SELL!!!");
}
if (!SoundSell && (gda_88[1] == EMPTY_VALUE || gda_88[1] == 0)) SoundSell = True;
//+------------------------------------------------------------------+
return (0);
}
-
0
- Просмотров: 10214
- 21 февраля 2020, 11:00
- IGOR1367
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!
Комментарии (126)
35 AM2 Сообщений: 16250 - Андрей
9 IGOR1367 Автор Сообщений: 108
35 AM2 Сообщений: 16250 - Андрей
#property link ""
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
extern int ADXbars = 14;
extern int CountBars = 350;
extern string SoundFile=«Alert.wav»;
extern bool UseSound=true;
bool SoundBuy = False;
bool SoundSell = False;
double gda_84[];
double gda_88[];
double gd_92;
double gd_100;
double gd_108;
double gd_116;
int init() {
string ls_0;
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_ARROW);
SetIndexArrow(0, 108);
SetIndexStyle(1, DRAW_ARROW);
SetIndexArrow(1, 108);
SetIndexBuffer(0, gda_84);
SetIndexBuffer(1, gda_88);
return (0);
}
int start() {
if (CountBars >= Bars) CountBars = Bars;
SetIndexDrawBegin(0, Bars — CountBars);
SetIndexDrawBegin(1, Bars — CountBars);
int li_8 = IndicatorCounted();
if (li_8 < 0) return (-1);
if (li_8 < 1) {
for (int li_0 = 1; li_0 <= CountBars; li_0++) gda_84[CountBars — li_0] = 0.0;
for (li_0 = 1; li_0 <= CountBars; li_0++) gda_88[CountBars — li_0] = 0.0;
}
for (int li_4 = CountBars; li_4 >= 0; li_4--) {
gd_92 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_PLUSDI, li_4 — 1);
gd_100 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_PLUSDI, li_4);
gd_108 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, li_4 — 1);
gd_116 = iADX(NULL, 0, ADXbars, PRICE_CLOSE, MODE_MINUSDI, li_4);
if (gd_92 > gd_108 && gd_100 < gd_116) gda_84[li_4] = Low[li_4] — 5.0 * Point;
if (gd_92 < gd_108 && gd_100 > gd_116) gda_88[li_4] = High[li_4] + 5.0 * Point;
}
//+------------------------------------------------------------------+
if (gda_84[1] != EMPTY_VALUE && gda_84[1] != 0 && SoundBuy)
{
SoundBuy = False;
if (UseSound) PlaySound (SoundFile);
Alert(«SixtySecondTrades(», Symbol(), ", ", Period(), ") — BUY!!!");
}
if (!SoundBuy && (gda_84[1] == EMPTY_VALUE || gda_84[1] == 0)) SoundBuy = True;
if (gda_88[1] != EMPTY_VALUE && gda_88[1] != 0 && SoundSell)
{
SoundSell = False;
if (UseSound) PlaySound (SoundFile);
Alert(«SixtySecondTrades (», Symbol(), ", ", Period(), ") — SELL!!!");
}
if (!SoundSell && (gda_88[1] == EMPTY_VALUE || gda_88[1] == 0)) SoundSell = True;
//+------------------------------------------------------------------+
return (0);
}
9 IGOR1367 Автор Сообщений: 108
20 alex30774 Сообщений: 748
9 IGOR1367 Автор Сообщений: 108
20 alex30774 Сообщений: 748
9 IGOR1367 Автор Сообщений: 108
35 AM2 Сообщений: 16250 - Андрей
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
35 AM2 Сообщений: 16250 - Андрей
9 IGOR1367 Автор Сообщений: 108
3 crediteuropebank1 Сообщений: 54 - Александр
9 IGOR1367 Автор Сообщений: 108
3 crediteuropebank1 Сообщений: 54 - Александр
9 IGOR1367 Автор Сообщений: 108
3 crediteuropebank1 Сообщений: 54 - Александр
www.opentraders.ru/downloads/2575/
35 AM2 Сообщений: 16250 - Андрей
9 IGOR1367 Автор Сообщений: 108
вторая сделка без сигнала срабатала, пятая, седьмая и т.д. сделка непонятно как сработалась.
9 IGOR1367 Автор Сообщений: 108
в левом верхнем углу я всегда вывожу сигнал индикатора. если есть сигнал, ордер открывается, если нет то уж извините.
лучше пользуйтесь стандартными индикаторами или свечными паттернами
35 AM2 Сообщений: 16250 - Андрей
9 IGOR1367 Автор Сообщений: 108
35 AM2 Сообщений: 16250 - Андрей
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
так то он правильно открывает, даже неплохо и флет пропускает, но тестер тут не поможет, а вот на немо нечего так даже, трал прицепил и нормально. Редактирован: 24 февраля 2020, 03:31
16 cerber04 Сообщений: 409
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
16 cerber04 Сообщений: 409
9 IGOR1367 Автор Сообщений: 108
SST — индикатор
Sixty2 — советник
Редактирован: 24 февраля 2020, 21:00
9 Servir Сообщений: 84
9 IGOR1367 Автор Сообщений: 108
9 Servir Сообщений: 84
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
Servir, рекомендуется архивировать в формат zip
Тогда архивы можно будет открывать без установки дополнительного ПО
45 Bishop Сообщений: 5802 - АЛЬФАХАМЕЦ-Машковод
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
9 Servir Сообщений: 84
9 IGOR1367 Автор Сообщений: 108
Значение цены 1653… А в советнике заложено не magenta < 1000 и больше 0.
Так что советник не рассчитан под золото и индексы у которых до запятой бывают значения больше 1000
8 Kudryashov Сообщений: 129
ВОТ ЕЩЕ СКРИНШОТ, СКОЛЬКО СИГНАЛОВ И НИ ОДНА СДЕЛКА НЕ ОТКРЫЛАСЬ А ДВЕ СДЕЛКИ КОТОРЫЕ БЫЛИ МОМЕНТАЛЬНО ОТКРЫТЫ И ЗАКРЫТЫ ПРИ ОТКРЫТИЕ ТЕРМИНАЛА И ЭТО ПРОИЗОШЛО НА ВСЕХ ПАРАХ ГДЕ БЫЛ УСТАНОВЛЕН ВАШ СОВЕТНИК. ВЫ ПРОВЕРЯЛИ РАБОТУ ВАШЕГО СОВЕТНИКА НА РЕАЛЬНОМ ГРАФИКЕ?
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
А если у вас такой классный индикатор, то попробуйте на нём с недельку поторговать в ручном режиме, заодно проверите бубут ли ваши сделки открытые в ручную совпадать с сигналами индикатора.
20 alex30774 Сообщений: 748
9 IGOR1367 Автор Сообщений: 108
20 alex30774 Сообщений: 748
9 IGOR1367 Автор Сообщений: 108
20 alex30774 Сообщений: 748
9 IGOR1367 Автор Сообщений: 108
20 alex30774 Сообщений: 748
9 IGOR1367 Автор Сообщений: 108
По индикатору представленному вами. Вот вам пример
Как можно увидеть из журнала индикатор сигналит алертом в 06-02, цветовое поле рисуется на бар ранее а советник выставляет ордер после закрытия бара сработки алерта.
Еще вопросы есть? Вроде подробно описал не только работу индикатора но и советника, остальные вопросы наверное уже к разработчикам индикатора.
9 Servir Сообщений: 84
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
20 alex30774 Сообщений: 748
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
16 cerber04 Сообщений: 409
9 IGOR1367 Автор Сообщений: 108
12 Slava78 Сообщений: 598
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
Возможно… Давно хотел попробовать поработать с функцией iCustom…
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
Я думал что там есть что переписать… но оказалось кроме замене главной вункции start на OnCalculate. start — это функция в основном в скриптах. OnCalculate — функция в индикаторных. В общем согласно инструкции. Также объединил 2 цикла в 1. Ибо считает 2 раза одно и тоже… нелогичненько.
Вот ваш оригинальный… для удобства в сообщении он будет помечен как OLD
8 Kudryashov Сообщений: 129
в данном индикаторе она не может рассчитать на текущем баре, а на следующем баре условие уже меняется и советник их не замечает.
Так что в данной ситуации правильнее было написать советник и вставить в него условия которые в индикаторе, НО…
8 Kudryashov Сообщений: 129
9 Servir Сообщений: 84
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
с функцией PlaySound я еще не работал…
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
не то что это будет объединение… и стрелки я хз… но в таком случае он будет всего 2 сделки за 2019 год открывать.
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
Если у вас есть индикатор оптимизированый… Вы можете его вогнать в советник через функцию iCustom… Она берет данные из буферов вашего индикатора и передает их советнику для анализа… Однако, это хорошо подходит для индикаторов которые строят графики, а для стрелочного индикаторов она… Скажем так: не очень подходит.
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
Не ожидал.
Я аж зачитался.
За какую-то недельку в топике почти Санта-Барбара.
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
9 IGOR1367 Автор Сообщений: 108
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
Да я сам ржу пол дня… Над решением которое я придумал
Ощущение что я изнасиловал mql таким примитивом
8 Kudryashov Сообщений: 129
Сами диалоги забавные, местами даже не вполне понятно, кто кому мозг гребёт Редактирован: 28 февраля 2020, 01:44
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
8 Kudryashov Сообщений: 129
Да, программисту в нормальном случае лучше работать с индикатором, который возвращает свои значения, но, во-первых очень часто встречаются и такие индикторы, которые не возвращают свои значения в буфер, а просто рисуют объекты на графике, а во-вторых может попасться индикатор без исходника и тут тоже только такой метод прокатит.
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
И не поспоришь
Аригато!!!
8 Kudryashov Сообщений: 129
9 IGOR1367 Автор Сообщений: 108
" открытие несколько сделок с шагом по затяжному тренду типа стоповых ордеров со стоплоссом на последней сделке" чтоб обьяснить это машине
16 cerber04 Сообщений: 409
9 IGOR1367 Автор Сообщений: 108
Это у Вас в голове сложившаяся картинка, а программист — не экстрасенс, он из чужой головы сам ничего не достанет.
Он возьмёт и сделает так, как ОН понял.
Вот после этого и рождаются обидки.
Учитесь писать техзадание и учтите, что скрины с пометками увеличивают понятность ТЗ как минимум вдвое. Редактирован: 28 февраля 2020, 18:02
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
9 IGOR1367 Автор Сообщений: 108
Работать будет только при запуске терминала на компе.
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
9 IGOR1367 Автор Сообщений: 108
до гения мне далековато… я говорил что это хобби… это я изучаю в свободное время… то что получилось одно не значит что получиться другое… однако я посмотрю что можно сделать, но сильно не надейтесь!
П.С.долго отвечал из за того что срисовывал
8 Kudryashov Сообщений: 129
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий