Статус
Закрыто для дальнейших ответов.

VilAnoR

Интересующийся
Такого универсального средства нету. Скорее проблема в том что надо понимать структуру. Тоесть 2 недели почитать и 2 попрактиковатся и всё будет ОК.

Вот конкретный пример прилепления алерта.
1)В терминале после прикрепления к графику заходишь в свойства вкладка цвет. Там смотришь какому буферу соответсвует определённый цвет. В нашем случае МА1 синяя и МА2 красная. Тоесть буфер 3 и 4.
2)Заходим в код и смотрим эти строки
SetIndexBuffer и ищем номера которые нам нужны. 3 и 4. И дальше в этой строке будет буфер который соответсвует цвету который мы искали. У нас это MA1buffer и MA2buffer
3)В самом конце перед return нужно записать условие чтобы алерт был раз на баре и при каом условии звенеть.

4)Чтобы раз на баре звенело.
PHP:
static int prevtime = 0;
это в глобальные переменные(с самого начала програмы)
PHP:
prevtime = iTime(Symbol(),0,0);
это в int init()
PHP:
if (iTime(Symbol(), 0, 0) == prevtime) {Sleep(50);return(0);}
   prevtime = iTime(Symbol(),0,0);
это в int start() в самый конец, перед нашим условием алерта.

5)Ну и само условие алерта.
В глобальные переменные(с самого начала, перед init) пишем какое сообщение будет звенеть.
PHP:
extern string cross = "МА пересеклись";

в start() после раз на баре.
PHP:
if((MA1buffer[2]>MA2buffer[2]&&MA1buffer[1]<MA2buffer[1]) || (MA1buffer[2]<MA2buffer[2]&&MA1buffer[1]>MA2buffer[1]))
   Alert(cross);
Дословно. (Если МА1 на позапрошлом баре была больше МА2 на позапрошлом баре И Если МА1 на прошлом баре была меньше МА2 на прошлом баре) ИЛИ (Если МА1 на позапрошлом баре была меньше МА2 на позапрошлом баре И Если МА1 на прошлом баре была больше МА2 на прошлом баре)
то Алерт сообщение МА пересеклись

Слушай, огромное спасибо. А вот вопрос, sendmail нельзя добавить в индикатор?
 

romaks

Местный житель
Такого универсального средства нету. Скорее проблема в том что надо понимать структуру. Тоесть 2 недели почитать и 2 попрактиковатся и всё будет ОК.

Вот конкретный пример прилепления алерта.
1)В терминале после прикрепления к графику заходишь в свойства вкладка цвет. Там смотришь какому буферу соответсвует определённый цвет. В нашем случае МА1 синяя и МА2 красная. Тоесть буфер 3 и 4.
2)Заходим в код и смотрим эти строки
SetIndexBuffer и ищем номера которые нам нужны. 3 и 4. И дальше в этой строке будет буфер который соответсвует цвету который мы искали. У нас это MA1buffer и MA2buffer
3)В самом конце перед return нужно записать условие чтобы алерт был раз на баре и при каом условии звенеть.

4)Чтобы раз на баре звенело.
PHP:
static int prevtime = 0;
это в глобальные переменные(с самого начала програмы)
PHP:
prevtime = iTime(Symbol(),0,0);
это в int init()
PHP:
if (iTime(Symbol(), 0, 0) == prevtime) {Sleep(50);return(0);}
   prevtime = iTime(Symbol(),0,0);
это в int start() в самый конец, перед нашим условием алерта.

5)Ну и само условие алерта.
В глобальные переменные(с самого начала, перед init) пишем какое сообщение будет звенеть.
PHP:
extern string cross = "МА пересеклись";

в start() после раз на баре.
PHP:
if((MA1buffer[2]>MA2buffer[2]&&MA1buffer[1]<MA2buffer[1]) || (MA1buffer[2]<MA2buffer[2]&&MA1buffer[1]>MA2buffer[1]))
   Alert(cross);
Дословно. (Если МА1 на позапрошлом баре была больше МА2 на позапрошлом баре И Если МА1 на прошлом баре была меньше МА2 на прошлом баре) ИЛИ (Если МА1 на позапрошлом баре была меньше МА2 на позапрошлом баре И Если МА1 на прошлом баре была больше МА2 на прошлом баре)
то Алерт сообщение МА пересеклись

Спасибо дружище. Всё хотел тебя в уроках просить написать урок по алертам, а тут ты пусть не все рассказал, но суть. Теперь проще дальше изучать и пробовать будет.
 

eevviill

Заблокирован
Слушай, огромное спасибо. А вот вопрос, sendmail нельзя добавить в индикатор?
Да. Что хочешь можно добавить.
Там где строка Alert надо ставить сначало и в конце скобки {}
PHP:
{Alert("Jo"); SendMail("Io","Cross");Comment("2MA cross");}
 

VilAnoR

Интересующийся
А зачем: {} ?

Что-то вроде
if(MA1buffer[0]<MA2buffer[0]) || (MA1buffer[0]>MA2buffer[0]))
{Alert("Jo"); SendMail("Io","Cross");Comment("2MA cross");Alert(cross)};
 

pegasusss

Новичок форума
Уважаемые программисты! После длительных и множественных тестов и проб, нашел я советника, который на демо показывает очень неплохой принцип работы. Сов работает по принципу сеточника с локированием открытых позиций и выведением прибыли из открытых на валютной паре сделок, что существенно разгружает депо и стабильно его увеличивает! Честно говоря, я готов поставить его на реальный счет, если бы не одно "но" - время от времени по непонятным мне причинам он перестает выставлять отложенные ордера, что попросту приводит к потере заложенного в алгоритм его работы принципа локирования и соответственно к потерям депо. ЧТО ЕМУ НЕ ХВАТАЕТ??? Пожалуйста, посмотрите его алгоритм, как его вылечить от сбоев или как-то доработать?!? Буду искренне благодарен за помощь!!!
 

Вложения

  • SafeArbitrage.mq4
    32,1 КБ · Просмотры: 76

sss555

Интересующийся
Пожалуйста нужно вставить в этот советник функцию SL с размером в количестве валюты с таким параметром.Заранее благодарю....
 

Вложения

  • Proffessor_v2_2011.mq4
    6,8 КБ · Просмотры: 51

user666

Новичок форума
111serg111

Посмотрел.
Пип работает точно.
А в Аргусе в самом коде записано чтобы пять ордеров открывать сразу. Зачем? Это можно только догадыватся. Сделал переменные чтобы можно было выбирать количество стартовых ордеров.

Я не оправдываюсь. Работу свою я сделал. Просто сам советник так написан.
На форум выкладывать не буду. Напишу в ЛС.

-=-=-=-
А почему бы не выложить ? Мне он тоже нравится....
 

VilAnoR

Интересующийся
if ((MA1buffer[0]<MA2buffer[0]) || (MA1buffer[0]>MA2buffer[0]))
{Alert(cross); SendMail("Cross MA","Cross");Comment("2MA cross");}

Вот что записал, звучит на каждом баре теперь и отправляет емейл.
 

VilAnoR

Интересующийся
Окей, сейчас будет.

Слушай, вот такой вот код адекватен?

С ним в целом все окей, все работает - просто на будущее узнать, не будет ли неожиданностей.

PHP:
 if((MA1buffer[1]>MA2buffer[1]&&MA1buffer[0]<MA2buffer[0]) || (MA1buffer[1]<MA2buffer[1]&&MA1buffer[0]>MA2buffer[0])) 
    {Alert(cross); SendMail("Cross MA","Cross");Comment("2MA cross");}
 
Последнее редактирование:

eevviill

Заблокирован
Окей, сейчас будет.

Слушай, вот такой вот код адекватен?

С ним в целом все окей, все работает - просто на будущее узнать, не будет ли неожиданностей.

PHP:
 if((MA1buffer[1]>MA2buffer[1]&&MA1buffer[0]<MA2buffer[0]) || (MA1buffer[1]<MA2buffer[1]&&MA1buffer[0]>MA2buffer[0])) 
    {Alert(cross); SendMail("Cross MA","Cross");Comment("2MA cross");}
Правильно, но поскольку у нас будет звинеть по закрытию бара, то нужно сравнивать прошлый и позапрошлый бары.
 
  • Like
Реакции: gush

VilAnoR

Интересующийся
Мне в целом лучше реагировать раньше, чем позже.
Насколько я смог убедиться, сейчас как раз сигнал буквально на самом пересечении.

То есть мне по сути нужен сигнал по факту пересечения на открытии.
 
Последнее редактирование:

Алекc1234

Местный житель
Здравствуйте. Сделайте, пожалуйста, в этом советнике так, чтобы когда срабатывает отложенный ордер с проскальзыванием, то стоплосс и тейкпрофит бы менялись на величину проскальзывания. То есть, поставился скажем байстоп на 1.2900, тейк - 1.2930, стоп - 1.2870. Сработал байстоп с проскальзыванием в 2 пункта, то есть открылся ордер бай по цене 1.2902. Вот тогда чтобы тейкпрофит поставился бы на 1.2932, а стоплосс на 1.2872, то есть они бы изменились на 2 пункта - на величину проскальзывания...Буду очень благодарен за помощь!
 

Вложения

  • Засада_v2 real.mq4
    4,2 КБ · Просмотры: 59

serikbay

Активный участник
Такого универсального средства нету. Скорее проблема в том что надо понимать структуру. Тоесть 2 недели почитать и 2 попрактиковатся и всё будет ОК.

Вот конкретный пример прилепления алерта.
1)В терминале после прикрепления к графику заходишь в свойства вкладка цвет. Там смотришь какому буферу соответсвует определённый цвет. В нашем случае МА1 синяя и МА2 красная. Тоесть буфер 3 и 4.
2)Заходим в код и смотрим эти строки
SetIndexBuffer и ищем номера которые нам нужны. 3 и 4. И дальше в этой строке будет буфер который соответсвует цвету который мы искали. У нас это MA1buffer и MA2buffer
3)В самом конце перед return нужно записать условие чтобы алерт был раз на баре и при каом условии звенеть.

4)Чтобы раз на баре звенело.
PHP:
static int prevtime = 0;
это в глобальные переменные(с самого начала програмы)
PHP:
prevtime = iTime(Symbol(),0,0);
это в int init()
PHP:
if (iTime(Symbol(), 0, 0) == prevtime) {Sleep(50);return(0);}
   prevtime = iTime(Symbol(),0,0);
это в int start() в самый конец, перед нашим условием алерта.

5)Ну и само условие алерта.
В глобальные переменные(с самого начала, перед init) пишем какое сообщение будет звенеть.
PHP:
extern string cross = "МА пересеклись";

в start() после раз на баре.
PHP:
if((MA1buffer[2]>MA2buffer[2]&&MA1buffer[1]<MA2buffer[1]) || (MA1buffer[2]<MA2buffer[2]&&MA1buffer[1]>MA2buffer[1]))
   Alert(cross);
Дословно. (Если МА1 на позапрошлом баре была больше МА2 на позапрошлом баре И Если МА1 на прошлом баре была меньше МА2 на прошлом баре) ИЛИ (Если МА1 на позапрошлом баре была меньше МА2 на позапрошлом баре И Если МА1 на прошлом баре была больше МА2 на прошлом баре)
то Алерт сообщение МА пересеклись

Спасибо тебе EEVVIILL. Вот исправил в коде, но все равно почемуто не звучит сигнал. Если не трудно EEVVIILL может глянешь все правильно или что то не туда запихал.
 

Вложения

  • 5_34_5-22222.mq4
    7,5 КБ · Просмотры: 40

eevviill

Заблокирован
Спасибо тебе EEVVIILL. Вот исправил в коде, но все равно почемуто не звучит сигнал. Если не трудно EEVVIILL может глянешь все правильно или что то не туда запихал.
Всё ОК. Просто условие стоит под общим if(use_alerts).
В переменных включи. Там false стоит.
 

eevviill

Заблокирован
Зделайте пожалуйста чтобы при значении FirstStepStop = 0 и FirstStepLimit = 0 первые ордера выставлялись рыночными а не отложенными а последующие отложенными как и есть в сове.
.
 

Вложения

  • Stop&Limit (e).mq4
    44,3 КБ · Просмотры: 47
Последнее редактирование:
  • Like
Реакции: gush
Статус
Закрыто для дальнейших ответов.
Верх