Лента последних комментариев


+1
Вывел 2 линии индикатора:



сейчас загвоздка в том что не знаю как пользоваться функциями библиотеки: <MovingAverages.mqh>


   ExponentialMAOnBuffer(rates_total,prev_calculated,0,FastMA,SPBuffer,FastMABuffer);
   ExponentialMAOnBuffer(rates_total,prev_calculated,0,SlowMA,SPBuffer,SlowMABuffer);


нужно переписать этот код:


   for(i=0; i<limit; i++)
    {  
      FastMABuffer[i]=iMAOnArray(SPBuffer,Bars,FastMA,0,MODE_LWMA,i);
      SlowMABuffer[i]=iMAOnArray(SPBuffer,Bars,SlowMA,0,MODE_LWMA,i);
      DiverBuffer[i]=iMAOnArray(TmpDiverBuff,Bars,FastMA,0,MODE_LWMA,i)*2;
    } 


пока так:

//+------------------------------------------------------------------+
//|                                                SuperPosition.mq5 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#property  indicator_separate_window
#property  indicator_buffers 15
#property indicator_plots 5

//---- plot RSI
#property indicator_label1 "RSI" // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type1 DRAW_LINE    // Тип буфера 
#property indicator_color1 Silver      // Цвет линии
#property indicator_style1 STYLE_SOLID // Стиль
#property indicator_width1 1           // Толщина линии

//---- plot DeMarker
#property indicator_label2 "DeMarker"  // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type2 DRAW_LINE    // Тип буфера 
#property indicator_color2 DarkOrange  // Цвет линии
#property indicator_style2 STYLE_SOLID // Стиль
#property indicator_width2 1           // Толщина линии

//---- plot SPB
#property indicator_label3 "SPB"       // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type3 DRAW_LINE    // Тип буфера 
#property indicator_color3 Black       // Цвет линии
#property indicator_style3 STYLE_SOLID // Стиль
#property indicator_width3 1           // Толщина линии

//---- plot FastMA
#property indicator_label4 "FastMA"    // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type4 DRAW_LINE    // Тип буфера 
#property indicator_color4 Red         // Цвет линии
#property indicator_style4 STYLE_SOLID // Стиль
#property indicator_width4 1           // Толщина линии

//---- plot SlowMA
#property indicator_label5 "SlowMA"    // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type5 DRAW_LINE    // Тип буфера 
#property indicator_color5 Blue        // Цвет линии
#property indicator_style5 STYLE_SOLID // Стиль
#property indicator_width5 1           // Толщина линии

//-----Level lines   
#property  indicator_level1 -0.20
#property  indicator_level2  0.20
#property  indicator_level3  0.50
#property  indicator_level4  0.80

#include <MovingAverages.mqh>

//---- indicator parameters
input int RSI=10;
input int DeMarker=10;
input int SPStep=4;
input int FastMA=10;
input int SlowMA=18;

double     RSIBuffer[];
double     DeMarkerBuffer[];
double     SPBuffer[];
double     FastMABuffer[];
double     SlowMABuffer[];
double     TmpDiverBuff[];
double     DiverBuffer[];

double     RSI0[];
double     RSI1[];
double     RSI2[];
double     RSI3[];

double     DM0[];
double     DM1[];
double     DM2[];
double     DM3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,RSIBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,DeMarkerBuffer,INDICATOR_DATA);

   SetIndexBuffer(2,RSI0,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,RSI1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,RSI2,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,RSI3,INDICATOR_CALCULATIONS);

   SetIndexBuffer(6,DM0,INDICATOR_CALCULATIONS);
   SetIndexBuffer(7,DM1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(8,DM2,INDICATOR_CALCULATIONS);
   SetIndexBuffer(9,DM3,INDICATOR_CALCULATIONS);

   SetIndexBuffer(10,SPBuffer,INDICATOR_DATA);
   SetIndexBuffer(11,TmpDiverBuff,INDICATOR_CALCULATIONS);
   SetIndexBuffer(12,FastMABuffer,INDICATOR_DATA);
   SetIndexBuffer(13,SlowMABuffer,INDICATOR_DATA);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   ArraySetAsSeries(RSIBuffer,true);
   ArraySetAsSeries(DeMarkerBuffer,true);
   ArraySetAsSeries(SPBuffer,true);
   ArraySetAsSeries(TmpDiverBuff,true);
   ArraySetAsSeries(FastMABuffer,true);
   ArraySetAsSeries(SlowMABuffer,true);

   ArraySetAsSeries(RSI0,true);
   ArraySetAsSeries(RSI1,true);
   ArraySetAsSeries(RSI2,true);
   ArraySetAsSeries(RSI3,true);

   ArraySetAsSeries(DM0,true);
   ArraySetAsSeries(DM1,true);
   ArraySetAsSeries(DM2,true);
   ArraySetAsSeries(DM3,true);

   int rsi0=iRSI(_Symbol,0,RSI+SPStep*0,0);
   int rsi1=iRSI(_Symbol,0,RSI+SPStep*1,0);
   int rsi2=iRSI(_Symbol,0,RSI+SPStep*2,0);
   int rsi3=iRSI(_Symbol,0,RSI+SPStep*3,0);

   int dm0=iDeMarker(_Symbol,0,DeMarker+SPStep*0);
   int dm1=iDeMarker(_Symbol,0,DeMarker+SPStep*1);
   int dm2=iDeMarker(_Symbol,0,DeMarker+SPStep*2);
   int dm3=iDeMarker(_Symbol,0,DeMarker+SPStep*3);

   int fast=iMA(_Symbol,0,FastMA,0,0,0);
   int slow=iMA(_Symbol,0,SlowMA,0,0,0);

   CopyBuffer(rsi0,0,0,100,RSI0);
   CopyBuffer(rsi1,0,0,100,RSI1);
   CopyBuffer(rsi2,0,0,100,RSI2);
   CopyBuffer(rsi3,0,0,100,RSI3);

   CopyBuffer(dm0,0,0,100,DM0);
   CopyBuffer(dm1,0,0,100,DM1);
   CopyBuffer(dm2,0,0,100,DM2);
   CopyBuffer(dm3,0,0,100,DM3);

//CopyBuffer(fast,0,0,100,FastMABuffer);
// CopyBuffer(slow,0,0,100,SlowMABuffer);

   for(int i=0; i<100; i++)
     {
      RSIBuffer[i]=(RSI0[i]+RSI1[i]+RSI2[i]+RSI3[i])/400;
      DeMarkerBuffer[i]=(DM0[i]+DM1[i]+DM2[i]+DM3[i])/4;
      SPBuffer[i]=(RSIBuffer[i]+DeMarkerBuffer[i])/2;
      TmpDiverBuff[i]=DeMarkerBuffer[i]-RSIBuffer[i];
     }

   ExponentialMAOnBuffer(rates_total,prev_calculated,0,FastMA,SPBuffer,FastMABuffer);
   ExponentialMAOnBuffer(rates_total,prev_calculated,0,SlowMA,SPBuffer,SlowMABuffer);
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

AM2

  • 18 июня 2018, 21:03
0
*cry*  че так сразу то??? Я пока что демо)))
avatar

Sapphire

  • 18 июня 2018, 21:00
0
пишите здесь ТЗ полностью и ищите поручителя
avatar

AM2

  • 18 июня 2018, 20:55
0
Хочу уточнить — нужно, чтобы у брокера не было БОЛЬШИХ ограничений по стоп-лоссу.
avatar

apologetest

  • 18 июня 2018, 19:58
0
кроме вот этого все нашел как переписать:


   for(int i=0; i<limit; i++)
   {
      RSIBuffer[i]=(iRSI(NULL,0,RSI+SPStep*0,PRICE_WEIGHTED,i)+
                    iRSI(NULL,0,RSI+SPStep*1,PRICE_WEIGHTED,i)+
                    iRSI(NULL,0,RSI+SPStep*2,PRICE_WEIGHTED,i)+
                    iRSI(NULL,0,RSI+SPStep*3,PRICE_WEIGHTED,i))/400;

   }


делал так:


   ArraySetAsSeries(DiverBuffer,true);
   ArraySetAsSeries(RSIBuffer,true);

   int rsi0=iRSI(_Symbol,0,RSI+SPStep*0,0);
   int rsi1=iRSI(_Symbol,0,RSI+SPStep*1,0);
   int rsi2=iRSI(_Symbol,0,RSI+SPStep*2,0);
   int rsi3=iRSI(_Symbol,0,RSI+SPStep*3,0);
   
   CopyBuffer((rsi0+rsi1+rsi2+rsi3)/400,0,0,100,RSIBuffer);

   for(int i=0; i<100; i++)
     {
      DiverBuffer[i]=RSIBuffer[i];
     }


не прокатывает :) 
avatar

AM2

  • 18 июня 2018, 19:24
0
ну шо… работает тс:) ?
avatar

FOTON

  • 18 июня 2018, 18:53
0
он не работает. я только начал делать
avatar

AM2

  • 18 июня 2018, 18:04
0
я сейчас поправлю и поставлю на тест на минутки
avatar

AM2

  • 18 июня 2018, 17:42
0
Проблемка, buy открывается без индикатора на демо, а селл вообще не открывается, не по индикатору, не просто так.
Можно не морочить голову, и убрать открытие по индикатору? Пусть открываются когда просто ставишь советник на счёт.
avatar

anathem

  • 18 июня 2018, 14:57
0
Спасибо, что попробовали! Правда может я компилирую как-то не так, но у меня пустое окно открывается без линий индикатора. Если возможно, скомпилируйте пожалуйста…
avatar

222333

  • 18 июня 2018, 09:10
Закрытая группа  Комментарий в закрытой группе / Апофория  
:: комментарий доступен только участникам закрытой группы "Апофория" - Читать ::
avatar

Oxy

  • 17 июня 2018, 23:50
0
неактуально.
avatar

art75

  • 17 июня 2018, 18:06
0
никогда не делал индикатор на мкл5. надо долго сидеть разбираться. к платному.

попробовал. мои каракули <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 

//+------------------------------------------------------------------+
//|                                                SuperPosition.mq5 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 6
#property indicator_plots 5

#property indicator_width4 2
#property indicator_width5 2

//---- plot RSI
#property indicator_label1 "RSI" // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type1 DRAW_LINE    // Тип буфера 
#property indicator_color1 Silver      // Цвет линии
#property indicator_style1 STYLE_SOLID // Стиль
#property indicator_width1 1           // Толщина линии

//---- plot RSI
#property indicator_label2 "DeMarker"  // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type2 DRAW_LINE    // Тип буфера 
#property indicator_color2 DarkOrange  // Цвет линии
#property indicator_style2 STYLE_SOLID // Стиль
#property indicator_width2 1           // Толщина линии

//---- plot SPB
#property indicator_label3 "SPB"       // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type3 DRAW_LINE    // Тип буфера 
#property indicator_color3 Black       // Цвет линии
#property indicator_style3 STYLE_SOLID // Стиль
#property indicator_width3 1           // Толщина линии

//---- plot FastMA
#property indicator_label4 "FastMA"    // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type4 DRAW_LINE    // Тип буфера 
#property indicator_color4 Red         // Цвет линии
#property indicator_style4 STYLE_SOLID // Стиль
#property indicator_width4 1           // Толщина линии

//---- plot SlowMA
#property indicator_label5 "SlowMA"    // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type5 DRAW_LINE    // Тип буфера 
#property indicator_color5 Blue        // Цвет линии
#property indicator_style5 STYLE_SOLID // Стиль
#property indicator_width5 1           // Толщина линии

//---- plot Diver
#property indicator_label5 "Diver"    // Название линии, отображаемое во всплывающей подсказе при наведении на линии указателя мыши.
#property indicator_type5 DRAW_HISTOGRAM    // Тип буфера 
#property indicator_color5 SteelBlue        // Цвет линии
#property indicator_style5 STYLE_SOLID // Стиль
#property indicator_width5 1           // Толщина линии


//-----Level lines   
#property  indicator_level1 -0.20
#property  indicator_level2  0.20
#property  indicator_level3  0.50
#property  indicator_level4  0.80
//---- indicator parameters
input int RSI=10;
input int DeMarker=10;
input int SPStep=4;
input int FastMA=10;
input int SlowMA=18;
//---- indicator buffers
double     RSIBuffer[];
double     DeMarkerBuffer[];
double     SPBuffer[];
double     FastMABuffer[];
double     SlowMABuffer[];
double     TmpDiverBuff[];
double     DiverBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,RSIBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,DeMarkerBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,SPBuffer,INDICATOR_DATA);
   SetIndexBuffer(3,FastMABuffer,INDICATOR_DATA);
   SetIndexBuffer(4,SlowMABuffer,INDICATOR_DATA);
   SetIndexBuffer(5,DiverBuffer,INDICATOR_DATA);
   SetIndexBuffer(6,TmpDiverBuff,INDICATOR_CALCULATIONS);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   ArraySetAsSeries(RSIBuffer,true);
   ArraySetAsSeries(DeMarkerBuffer,true);
   ArraySetAsSeries(SPBuffer,true);
   ArraySetAsSeries(FastMABuffer,true);
   ArraySetAsSeries(SlowMABuffer,true);
   ArraySetAsSeries(TmpDiverBuff,true);
   ArraySetAsSeries(DiverBuffer,true);

   for(int i=0; i<100; i++)
     {
      CopyBuffer((iRSI(NULL,0,RSI+SPStep*0,PRICE_WEIGHTED)+iRSI(NULL,0,RSI+SPStep*1,PRICE_WEIGHTED)+iRSI(NULL,0,RSI+SPStep*2,PRICE_WEIGHTED)+iRSI(NULL,0,RSI+SPStep*3,PRICE_WEIGHTED))/400,0,i,1,RSIBuffer);
      CopyBuffer((iDeMarker(NULL,0,DeMarker+SPStep*0)+iDeMarker(NULL,0,DeMarker+SPStep*1)+iDeMarker(NULL,0,DeMarker+SPStep*2)+iDeMarker(NULL,0,DeMarker+SPStep*3))/4,1,i,1,DeMarkerBuffer);

      SPBuffer[i]=(RSIBuffer[i]+DeMarkerBuffer[i])/2;
      TmpDiverBuff[i]=DeMarkerBuffer[i]-RSIBuffer[i];

      CopyBuffer(iMA(NULL,0,FastMA,0,0,MODE_LWMA),3,i,1,FastMABuffer);
      CopyBuffer(iMA(NULL,0,SlowMA,0,0,MODE_LWMA),4,i,1,SlowMABuffer);
      CopyBuffer(iMA(NULL,0,FastMA,0,0,MODE_LWMA)*2,6,i,1,DiverBuffer);
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

AM2

  • 17 июня 2018, 17:23
0
Судя по всему на картине герои этого шоу
avatar

Kashtan

  • 17 июня 2018, 15:53
0
Спасибо, начну с открытия понедельника тестировать, чтобы понять принцип, по которому советник работает.
avatar

sledopyt

  • 17 июня 2018, 15:44
+1
достаточно сложный индивидуальный алгоритм. на такие советники уходит в разы больше времени и сил, поэтому как есть. если нужно дальше в следующем месяце или к платному.
www.opentraders.ru/downloads/1946/

avatar

AM2

  • 17 июня 2018, 12:17
0
Perfect! *hi* 
завтра потестирую)
avatar

anathem

  • 17 июня 2018, 10:26
+1
добавил: www.opentraders.ru/downloads/1944/

extern int Trades = 10;  // число поз
avatar

AM2

  • 17 июня 2018, 10:06
Начать торговлю с Альпари