0
Пока идет доработка.
Скажи что надо.
Можно любой символ из это и цвет
avatar

Servir

  • 28 июня 2019, 11:17
+1
www.opentraders.ru/downloads/2336/
Готово.
Визуальный, текстовый и звуковой сигналы.
avatar

Servir

  • 27 июня 2019, 19:46
0
На скрине видно место где можно было закрыться руками чтоб не было просадки.
Конечно если добавить кнопку «CloseAll» чтоб в режиме теста помогать то результат был бы больше.
Кнопку добавлю позже.
avatar

Servir

  • 27 июня 2019, 16:01
0
На скрине видно место где можно было закрыться руками чтоб не было просадки
avatar

Servir

  • 27 июня 2019, 15:59
0
Попробуй этот
www.opentraders.ru/downloads/2335/
Скрин на периоде январь этого года, настройки стандарт.(тестил с 10000)

avatar

Servir

  • 27 июня 2019, 15:56
0
Надо подумать.
А пока можешь использовать скрипт.
Перед тем как загружать новый график индикаторами запусти
//+------------------------------------------------------------------+
//| Del-Gobal.mq4 |
//| GurenevDV |
//| 2019.01 |
//+------------------------------------------------------------------+
#property copyright «GurenevDV»
#property link «2019.01»
#property version «1.00»
#property strict
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
GlobalVariablesDeleteAll();
}
//+------------------------------------------------------------------+
avatar

Servir

  • 26 июня 2019, 15:39
0
Да это не индикатор не удаляется а переменная из списка
avatar

Servir

  • 26 июня 2019, 14:32
0
Два одинаковых индикатора на один график — нет.
нажми F3 и посмотри переменную val если есть то удали (она отвечает за приветствие).
при ее отсутствии в этом списке работает
Хотя в коде прописано чтоб удалял при закрытии.
avatar

Servir

  • 26 июня 2019, 13:56
0
И все таки этот вариант работает как надо, даже без ручного удаления глобал.
<code>//+------------------------------------------------------------------+
//|                                                          GDV.mq4 |
//|                                                  Copyright 2019, |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "GDV"
#property version   "1.00"
#property strict
#property indicator_chart_window


input string mus="alert.wav";
static bool bPlayS=true;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(GlobalVariableCheck("val")==True){  
   if(Period()==1440 ) PlaySound("alert.wav");bPlayS=False;
   if(Period()==240 ) PlaySound("alert.wav");bPlayS=False;
   if(Period()==60 ) PlaySound("alert.wav");bPlayS=False;
   if(Period()==30 ) PlaySound("alert.wav");bPlayS=False;
   if(Period()==15 ) PlaySound("alert.wav");bPlayS=False;
   if(Period()==5 ) PlaySound("alert.wav");bPlayS=False;
   if(Period()==1 ) PlaySound("alert.wav");bPlayS=False;
   } 
   if(GlobalVariableCheck("val")==False) {PlaySound(mus);GlobalVariableSet("val",1);}
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
   if(reason==1) GlobalVariableDel("val");
   Comment("\n Total: ",GlobalVariablesTotal());
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   Comment("\n Total: ",GlobalVariablesTotal());
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+</code>


C:\Program Files\… MT4\Sounds — или там где установлен терминал — проверь в этой папке какие названия файлов есть и соответственно только сними и работай, если надо что то другое скачай… .wav или перемести в эту папку.
avatar

Servir

  • 26 июня 2019, 09:52
0
Переделай немного
int OnInit()
{
if(GlobalVariableCheck(«val»)==True){
if(Period()==240 ) PlaySound(«3175.wav»);bPlayS=False;
if(Period()==30 ) PlaySound(«3232.wav»);bPlayS=False;
if(Period()==15 ) PlaySound(«3252.wav»);bPlayS=False;}
if(GlobalVariableCheck(«val»)==False) {PlaySound(mus);GlobalVariableSet(«val»,1);}

НО пока при первом запуске все равно надо проверять и удалять глобальную переменную «val» вручную, иначе теряется вся логика инд.
P.S.
Либо, как вариант, прописать в советнике проверку инд. на графике и если его нет то удаляем нашу глобал.
avatar

Servir

  • 26 июня 2019, 08:08
0
Если взять тот же период что и на первом скрине то с длиной = 3 по вашему индикатору получается отрисовка желтым, не находит он всех нарисованных импульсов

avatar

Servir

  • 26 июня 2019, 07:35
0
Возможно кому нужен мой вариант
www.opentraders.ru/downloads/2332/
avatar

Servir

  • 26 июня 2019, 07:01
0
Сравни с последним кодом и поменяй и будет тебе счастье
avatar

Servir

  • 26 июня 2019, 06:05
0
Привет всем Я бы предложил заменить строчку
int OnInit()
{
if(GlobalVariablesTotal()<1)
на

int OnInit()
{
if(GlobalVariableCheck(«val»)==False)
так как первая ищет все переменные и сравнивает их, но это не удобно а если в работе «других» тоже есть глобал
вторая же просто ищет среди всех нашу — это удобнее
и еще под замену, что бы не удалять все переменные
void OnDeinit(const int reason)
{
if(reason==1) GlobalVariableDel(«val»);
avatar

Servir

  • 26 июня 2019, 06:00
0
Ну все это окончательный вариант и поет только при установке и только по изменению ТФ
//+------------------------------------------------------------------+
//|                                                          GDV.mq4 |
//|                                                  Copyright 2019, |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "GDV"
#property version   "1.00"
#property strict
#property indicator_chart_window


input string mus="5.wav";
static bool bPlayS=true;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   if(GlobalVariablesTotal()<1) {PlaySound(mus);GlobalVariableSet("val",1);}  
   if(Period()==240 ) PlaySound("3175.wav");bPlayS=False;
   if(Period()==30 ) PlaySound("3232.wav");bPlayS=False;
   if(Period()==15 ) PlaySound("3252.wav");bPlayS=False; 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(reason==1) GlobalVariablesDeleteAll();
   Comment("\n Total: ",GlobalVariablesTotal());
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   Comment("\n Total: ",GlobalVariablesTotal());
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

Servir

  • 25 июня 2019, 20:30
0
Я так и не пойму что надо, вроде все сделали и в разных вариантах
ЧТО НЕ ТАК
Что конкретно то надо?

avatar

Servir

  • 25 июня 2019, 18:48
0
Возможно как то так например с уровнями поддержки и сопротивления
avatar

Servir

  • 25 июня 2019, 12:17
0
Если открывать и закрывать ордера по сигналам индикатора то выходит даже не плохо но:
1, Необходимо ждать обратную свечу
2, Все таки нужен доп.фильтр, есть дублирующие сигналы (но мало)
avatar

Servir

  • 25 июня 2019, 12:06
0
Если рассматривать дистанцию как направление ВСЕХ баров в одном направлении то получим то что выше.
Если рассматривать дистанцию по другому то получиться вот такой результат

а это уже другой индикатор.
Сравните с Вашим скрином выше.
avatar

Servir

  • 25 июня 2019, 12:02