0
Я не спорю, но на этом он не успокоился захотел еще…
Вот я и переделал
avatar

Servir

  • 24 июня 2019, 21:37
0
Слова автора «как сделать чтобы было только когда меняю ТФ», а в вашем варианте «пищит» на все
avatar

Servir

  • 24 июня 2019, 21:07
0
Если что удали Commet что бы не мешал выводить другую инфу
avatar

Servir

  • 24 июня 2019, 13:39
0
Вот это работает как надо только на переключение ТФ
//+------------------------------------------------------------------+
//|                                                          GDV.mq4 |
//|                                                  Copyright 2019, |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "GDV"
#property version   "1.00"
#property strict
#property indicator_chart_window

input string mus="alert.wav";
int OnInit()
  {
   GlobalVariableSet("val",1);
   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
   if(reason==1) 
   GlobalVariablesDeleteAll(); else  PlaySound(mus);
   Comment("\n Total: ",GlobalVariablesTotal());
  }
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(rates_total);
  }
avatar

Servir

  • 24 июня 2019, 13:37
0
Только через глобальные переменные т.к. у них есть запись в файл
avatar

Servir

  • 24 июня 2019, 13:19
0
Так Я сам сделал, спасибо.
Судя по предыдущим постам только на свои силы и надеяться.
avatar

Servir

  • 24 июня 2019, 05:22
0
Сигналов получается очень мало в отличии от ручной торговли
К примеру
В индикаторе с импульсом ==5 и свечой ==20 с 01,01,2019 по 01,05,2019
Всего получилось 7 сигналов с профитом (меньше 20 % за весь период) не очень
По этому, Я, не вижу смысла в данной разработке.
Так что торгуйте в ручную, на своей интуиции и своих параметрах.
avatar

Servir

  • 23 июня 2019, 21:35
0
Добрый вечер, больше похож на индикатор ZigZag стрелочный только с добавлением
1. проверки свечи в массиве по пунктам (длина свечи == 20)
2. проверки «импульса» все(параметр Pips) к примеру + или -
avatar

Servir

  • 23 июня 2019, 21:24
0
Привет все даже очень просто
перед выполнением тела индикатора вставь

if(Period()==240 ) {PlaySound(«5.wav»); bPlayS=false;}
и т.д.
и каждый раз когда меняешь тф муза.
и не надо никаких глобальных переменных *good* 
avatar

Servir

  • 23 июня 2019, 11:24
0
Точно не моя, то что надо было заказчику я отправил в личку
avatar

Servir

  • 22 июня 2019, 19:46
0
А то не дождешься
avatar

Servir

  • 22 июня 2019, 16:55
0
Держи сову —
1.Находит
2.Закрывает любые профитные ордера
3.Можно указать магик и мин. доход для закрытия
avatar

Servir

  • 22 июня 2019, 16:52
0
//+------------------------------------------------------------------+
//|                                                       Profit.mq4 |
//|                                                              GDV |
//|                                                          2019.01 |
//+------------------------------------------------------------------+
#property copyright "GDV"
#property link      "2019.01"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
extern int    MagicBuy  = 1;   //Если прописать магик то будет закрывать
extern int    MagicSell = 2;   //определенные ордера(например только от советника)
                               //выставленные вручную нетогает 
extern double Profit    = 10.0;  //Желаемый Min доход
   
double PR_S,PR_B;

//+------------------------------------------------------------------+
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
//---------------------------------------------------------------------------------------------------  
  
  int CountBYU()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {
     if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicBuy)
     {
     if(OrderType()==OP_BUY) count++;
     }
     }
     }
   return(count);
  }
//-----------------------------------------------------------------------------------------------------  
  int CountSELL()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicSell)
      {
      if(OrderType()==OP_SELL) count++;
      }
      }
      }
   return(count);
  }
  

int start()
  {
  
if (CountBYU()==1)                                
   {
   for(int i=OrdersTotal()-1;i>=0;i--)
   {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
   {
   if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==MagicBuy)
   {
   if(OrderProfit()>Profit){
    PR_B=OrderProfit();
    bool cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),30,White);}
   
   }
   }
   }
   }
if (CountSELL()==1)
   {
   for(int j=OrdersTotal()-1;j>=0;j--)
   {
   if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
   {
   if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==MagicSell)
   {
   if(OrderProfit()>Profit){
    PR_S=OrderProfit();
    bool cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),30,White);}
   }
   }
   }
   }
 
   
   
   
if (IsTesting() && OrdersTotal()==0)
   {
      
     bool l1= OrderSend(Symbol(),OP_BUY,0.5,NormalizeDouble(Ask,Digits),30,0,0,NULL,MagicBuy,0,clrBlue);
     bool l2= OrderSend(Symbol(),OP_SELL,0.5,NormalizeDouble(Bid,Digits),30,0,0,NULL,MagicSell,0,clrRed);
      
   }
   Comment("\n",CountBYU(),
           "\n",CountSELL(),
           "\n",PR_B,
           "\n",PR_S);
    return(0);
  }
//+------------------------------------------------------------------+
avatar

Servir

  • 22 июня 2019, 16:49
0
Смотря что нужно сделать с ордером
avatar

Servir

  • 22 июня 2019, 16:19
0
Да к стати последняя точка-круг на скрине Н1 австрал/долл реального времени.
Примите во внимание — если Ваш и мой индикаторы верны то это РАЗВОРОТ.
Вот и проверим.
avatar

Servir

  • 16 июня 2019, 08:52
0
Доброго времени суток.
Для понимания — мой скрин выше это «возможная» РУЧНАЯ торговля на Н1 с применением фильтров.
По вашему ТЗ я сову написал (с возможностью выставлять как отложенные так и обычные ордера ), прогнал в тестере (с тралом и без него) — прибыли нет (почти нет 20-30 % от начального депо за 3-4 месяца)." Хорошо выглядит " только в ОПИСАНИИ РАБОТЫ СОВЕТНИКА И В ГОЛОВЕ.
Если и писать то только с фильтрами!!!
Это мое, сугубо мое мнение.
avatar

Servir

  • 16 июня 2019, 08:48
0
С тралом данный советник срабатывает почти в минус минимальный профит, лучше ручками с фильтрующим индикатором
avatar

Servir

  • 15 июня 2019, 21:02
0
Ни чего сложного. Возьми сигнал индикатора не 0 бар а 1 и ни каких массивов.А далее по накатанной.
Простой советник по индикатору(скелетов в инете много).а трал можно ставить и в виде зацикленного скрипта с виртуальным ТП.
avatar

Servir

  • 15 июня 2019, 10:21
0
В начале дня в 2-00 открывается ордер в зависимости от того, где находится цена. Если цена оказалась над дневным Pivot уровнем то выставляем ордер Buy. Если цена открылась под дневным пивот уровнем то открываем позицию sell.
Для фильтрации используем дополнительные сигналы с осциллятора MACD.
В настройках при оптимизации под другие пары и другие временные периоды оптимизируются два параметра.
1 MA — оптимальная для EURUSD на H4 MA 6
2 Разница пивот уровней FiltrPivot. На H4 для EURUSD оптимальная от 380 до 500(размер в пунктах для пятизнака на А… ри) то есть для четырехзначных ДЦ это 38 и 50 соответственно.
Стратегия по пробою дневного пивот уровня EURUSD H4.
Условия на покупку:
Цена и 6 МА находится над Pivot уровнем.
MACD8 17 9. Наша палочка гистограммы на момент входа должна быть выше предыдущей
Уровень pivot должен быть выше предыдущего на 25 пунктов. Если меньше то в этот день мы не входим в сделки.(фильтрация флета или разворота)
В советнике мы задаем стандартный лот. В сделку входим двойным лотом. TP 1 – R1 на нем закрываем 50% лота и SL переносим в безубыток на Pivot уровень. Вторая половина сделки закрывается либо по безубытку либо в 1:58. SL устанавливаем на S1, либо закрытие сделки при обратном пересечении.
Условия на продажу:
Цена и 6 МА находится под Pivot уровнем.
MACD12 26 9. Наша палочка гистограммы на момент входа должна быть ниже предыдущей
Уровень pivot должен быть ниже предыдущего на 25 пунктов. Если меньше, то в этот день мы не входим в сделки. (фильтрация флета или разворота)
В советнике мы задаем стандартный лот. В сделку входим двойным лотом. TP 1 – S1 на нем закрываем 50% лота и SL переносим в безубыток на Pivot уровень. Вторая половина сделки закрывается либо по безубытку либо в 1:58.

avatar

Servir

  • 14 июня 2019, 18:47