Советники: Nadaraya-Watson estimator EA Simple - страница 2

 
Edviao #:
Не могли бы вы привести несколько примеров из множества упомянутых вами бесплатных программ?

Я не имею Права, так как Это может посчитаться как реклама А  Реклама сторонних программ на данной странице Запрещена, Только с Разрешения  Модератора.

Кроме того Вы можете взять Какого либо Бесплатного Эксперта Выставить Ему Магик Соответствующий Вашему магику сделки И использовать его Виртуальные тейкпрофиты и стоплоссы и тому Подобное. 

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

 Уверяю вас такие программы есть и я ими сам пользуюсь и они доступны в маркете.

Вы Имеете право Написать мне в Личные сообщения Чтоб не засорять данный чат.
 
Edviao #:
Владимир, 
Хотел бы узнать ваше мнение по вопросу, который считаю важным.

Основываясь на моем опыте, я думаю, что некоторые брокерские компании играют в игру на SL / TP. Потому что для брокера нет препятствий, чтобы не видеть все сложенные области SL и TP. 

Они могут легко отслеживать эту информацию, манипулировать и ликвидировать позиции. 

Чтобы предотвратить это, можно разработать вспомогательный советник или инструмент, который работает параллельно с любым работающим советником, но дает живые, но фальшивые приказы SL / TP. 

Таким образом, можно будет безопасно использовать реальные sl / tp, не показывая зоны SL / TP злонамеренным брокерам. 

Можете ли вы поделиться своими взглядами на эту основную идею?
Интересно, с какими такими брокерами вы торговали, если сталкивались с подобным.

По моему опыту - у меня были случаи когда цена разворачивалась в нескольких пунктах от СЛ и я закрывал эту сделку с прибылью.
Брокеры получают прибыль с комиссий, спред, своп. Им не выгодно обманывать. Там денег хватает.
 
Edviao #:
Не могли бы вы привести несколько примеров из множества упомянутых вами бесплатных программ?

Не оно? https://www.mql5.com/ru/code/13853


PS. А, это для MT4... Но при желании можно и переделать для MT5

Виртуальный трейлинг-стоп
Виртуальный трейлинг-стоп
  • www.mql5.com
Виртуальный трейлинг может выставлять стоп-лосс, тейк-профит и тралить ордер таким образом, чтобы стопы не были видны брокеру.
 

Владимир, Я В параллель тестировал в течении недели данного советника и индикатор его.

Было бы очень любопытно попробовать его протестировать  если к нему добавить для начала две функции

1.Разделить сделку на бай и на сел.

2. Добавить  Минимальный профит для закрытия (чтоб за зря не минусовал)

 
ai1111 #:


1.Разделить сделку на бай и на сел.

Два советника в одном?

 
Vladimir Karputov #:

Два советника в одном?

Я Не Знаю что для вас обозначает   " Два советника в одном" 

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

 
ai1111 #:

Владимир, Я В параллель тестировал в течении недели данного советника и индикатор его.

Было бы очень любопытно попробовать его протестировать  если к нему добавить для начала две функции

1.Разделить сделку на бай и на сел.

2. Добавить  Минимальный профит для закрытия (чтоб за зря не минусовал)

Сегодня будет такой код.

 
Vladimir Karputov #:

Сегодня будет такой код.

Хорошо Спасибо

 
Владимир здравствуйте. А можно попросить Вас установить на этот Ваш советник параллельно еще стоп лосс и тейк профит. Спасибо
 

Кому интересно, чуть подредактировал индикатор. Теперь не перерисовывает, построенная на истории часть тоже не перерисованная. Выглядит, конечно, не так красиво, как оригинал, но зато честно) Интересный индикатор. Спасибо автору.

#property indicator_chart_window
#property indicator_buffers  2
#property indicator_plots    1
#property indicator_label1   "Estimator"
#property indicator_type1    DRAW_COLOR_LINE
#property indicator_color1   clrDeepSkyBlue,clrRed
#property indicator_width1   2

//--------------------------------------------------------------

input double             inpBandWidth       = 8;           // Band width
input ENUM_APPLIED_PRICE inpPrice           = PRICE_CLOSE; // Price
input int                inpPeriodCalc      = 500;

//--------------------------------------------------------------
double val[],valc[];
//--------------------------------------------------------------
int OnInit()
{
   SetIndexBuffer(0,val ,INDICATOR_DATA);
   SetIndexBuffer(1,valc,INDICATOR_COLOR_INDEX);

   ArraySetAsSeries(val, true);
   ArraySetAsSeries(valc, true);
     
   return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason) { return; }

//--------------------------------------------------------------
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[])
{

   ArraySetAsSeries(open,  true);
   ArraySetAsSeries(high,  true);
   ArraySetAsSeries(low,   true);
   ArraySetAsSeries(close, true);

   struct sWorkStruct   {  double price;  };  
   static sWorkStruct   m_work[];
   ArraySetAsSeries    (m_work, true);  
   
   int limit = rates_total - prev_calculated;
   if(prev_calculated == 0) {
      limit -= inpPeriodCalc;
      ArrayResize(m_work,rates_total+500,2000);
   }
   for (int i=0; i<limit + inpPeriodCalc; i++) m_work[i].price = iGetPrice(inpPrice,open,high,low,close,i);

   for(int i=0;i<limit && !IsStopped();i++){
      double sum  = 0;
      double sumw = 0;
      for (int j=0; j<inpPeriodCalc; j++){
         double w = exp(-(pow(j,2)/(inpBandWidth*inpBandWidth*2.0)));
         sum  += m_work[j+i].price*w;
         sumw += w;
      }            
      val[i] = sum/sumw;
      valc[i]= (i>0) ? val[i]>val[i-1] ? 0 : 1 : 0;
   }
     
   return(rates_total);
}
//--------------------------------------------------------------
double iGetPrice(ENUM_APPLIED_PRICE price,const double& open[], const double& high[],
                                          const double& low[],  const double& close[], int i)
{
   switch (price)
   {
      case PRICE_CLOSE:     return(close[i]);
      case PRICE_OPEN:      return(open[i]);
      case PRICE_HIGH:      return(high[i]);
      case PRICE_LOW:       return(low[i]);
      case PRICE_MEDIAN:    return((high[i]+low[i])/2.0);
      case PRICE_TYPICAL:   return((high[i]+low[i]+close[i])/3.0);
      case PRICE_WEIGHTED:  return((high[i]+low[i]+close[i]+close[i])/4.0);
   }
   return(0);
}