Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Тысяча человек уже опубликовали продукты в Маркете. Опубликуй и ты свой!
pansa
580
pansa 2014.10.26 08:37 

я конечно сторонник  mql 4,но так как МТ4 находится

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

чуть ли не ежедневно,то решил посмотреть-что же это за зверь!

я нашол брокера   QTrade   .Первое впечатление -как однако все

быстро работает,график так и шевелится!Торговать можно однако

только однои позицией!Можешь ее увеличивать или уменьшать,

при смене направления-большие потери!Влияние Банкиров!

Бросается в глаза большои поток дат-причем выходит больше чем

заходит,к чему бы ето?Пишут для   mql5     мало.Некии Коситсин(Коси-Тцын)

однако написал столько ,что один перечень занимает 64 страниц!

видимо накосил етого тцына достаточно,заявляет в иннете нет нянек!

на запросы не отвечает.Вообщем пользователеи его кодом не уважает.

Сам код формализован до предела.

один инклюдник сидит на другом!

десятки инклюдников в однои программе!

Таким дилетантам как я в коде не разобраться!

если в  mql4             можно было ещо понятъ и чтото

даже переделать-то     mql5      ето абсолютно исключено.

ты весь в руках программистов.

а жаль.

панса

Artyom Trishkin
Модератор
74088
Artyom Trishkin 2014.10.26 09:33  
Косицин просто котобазу четвёрошную перенёс на пятёрку
Карпутов Владимир
203
Карпутов Владимир 2014.10.26 09:48  
А где впечатления? :)
Если непонятно, что-то в mql5 то Вы всегда можете спросить. Есть целый форум посвящённый mql5: https://www.mql5.com/ru/forum
pansa
580
pansa 2014.10.26 11:51  
barabashkakvn:
А где впечатления? :)
Если непонятно, что-то в mql5 то Вы всегда можете спросить. Есть целый форум посвящённый mql5: https://www.mql5.com/ru/forum

Привет,barabashkakvn!

по мqл5 впечатления накапливаю.

Уж коли Вы обратили внимание

посмотрите почему код не хочет работать

сам индикатор адаптировал Коситсин

мqh написал интегер

осталось зделать рабочим.

панса

//+---------------------------------------------------------------------+ 
//|                                              SlopeDirectionLine.mq5 | 
//|                                        Copyright © 2006, WizardSerg | 
//|                                                  wizardserg@mail.ru | 
//+---------------------------------------------------------------------+ 
#property copyright "Copyright © 2006, WizardSerg"
#property link "wizardserg@mail.ru"
//---- номер версии индикатора
#property version   "1.00"
//---- отрисовка индикатора в главном окне
#property indicator_chart_window 
//---- количество индикаторных буферов
#property indicator_buffers 2 
//---- использовано всего одно графическое построение
#property indicator_plots   1
//+-----------------------------------+
//|  Параметры отрисовки индикатора   |
//+-----------------------------------+
//---- отрисовка индикатора в виде многоцветной линии
#property indicator_type1   DRAW_COLOR_LINE
//---- в качестве цветов трёхцветной линии использованы
#property indicator_color1  clrDeepPink,clrGray,clrDarkViolet
//---- линия индикатора - непрерывная кривая
#property indicator_style1  STYLE_SOLID
//---- толщина линии индикатора равна 2
#property indicator_width1  2
//---- отображение лэйбы индикатора
#property indicator_label1  "SlopeDirectionLine"

//+-----------------------------------+
//|  Описание класса CXMA             |
//+-----------------------------------+
#include <SmoothAlgorithms.mqh> 
//+-----------------------------------+

//---- объявление переменных класса CXMA из файла SmoothAlgorithms.mqh
CXMA XMA1,XMA2,XMA3;
//+-----------------------------------+
//|  объявление перечислений          |
//+-----------------------------------+
enum Applied_price_ //Тип константы
  {
   PRICE_CLOSE_ = 1,     //Close
   PRICE_OPEN_,          //Open
   PRICE_HIGH_,          //High
   PRICE_LOW_,           //Low
   PRICE_MEDIAN_,        //Median Price (HL/2)
   PRICE_TYPICAL_,       //Typical Price (HLC/3)
   PRICE_WEIGHTED_,      //Weighted Close (HLCC/4)
   PRICE_SIMPL_,         //Simpl Price (OC/2)
   PRICE_QUARTER_,       //Quarted Price (HLOC/4) 
   PRICE_TRENDFOLLOW0_,  //TrendFollow_1 Price 
   PRICE_TRENDFOLLOW1_   //TrendFollow_2 Price 
  };
/*enum Smooth_Method - перечисление объявлено в файле SmoothAlgorithms.mqh
  {
   MODE_SMA_,  //SMA
   MODE_EMA_,  //EMA
   MODE_SMMA_, //SMMA
   MODE_LWMA_, //LWMA
   MODE_JJMA,  //JJMA
   MODE_JurX,  //JurX
   MODE_ParMA, //ParMA
   MODE_T3,    //T3
   MODE_VIDYA, //VIDYA
   MODE_AMA,   //AMA
  }; */
//+-----------------------------------+
//|  ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА     |
//+-----------------------------------+
input Smooth_Method MA_Method1=MODE_LWMA//метод первого усреднения
input uint Length1=12//глубина первого усреднения                
input int Phase1=15;  //параметр первого усреднения,
                      //для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса;
// Для VIDIA это период CMO, для AMA это период медленной скользящей

input Smooth_Method MA_Method2=MODE_SMA//метод усреднения второго сглаживания 
input int Phase2=15;  //параметр второго сглаживания,
                      //для JJMA изменяющийся в пределах -100 ... +100, влияет на качество переходного процесса;
// Для VIDIA это период CMO, для AMA это период медленной скользящей
input Applied_price_ IPC=PRICE_CLOSE;//ценовая константа
/* , по которой производится расчёт индикатора ( 1-CLOSE, 2-OPEN, 3-HIGH, 4-LOW, 
  5-MEDIAN, 6-TYPICAL, 7-WEIGHTED, 8-SIMPL, 9-QUARTER, 10-TRENDFOLLOW, 11-0.5 * TRENDFOLLOW.) */
input int Shift=0// сдвиг индикатора по горизонтали в барах
input int PriceShift=0// cдвиг индикатора по вертикали в пунктах

input bool On_Push = false;                           //разрешение на передачу push-сообщений
input bool On_Email = false;                          //разрешение на отправку почты
input bool On_Alert = true;                           //разрешение на подачу алерта
input bool On_Play_Sound = false;                     //разрешение на подачу звукового сигнала
input string NameFileSound = "expert.wav";            //имя для файла звукового сигнала
input string  CommentSirName="SlopeDirectionLine: ";  //первая часть алерт-коммента
input uint SignalBar=1;                               //номер бара для сигнала
//+-----------------------------------+

//---- объявление динамических массивов, которые будут в 
// дальнейшем использованы в качестве индикаторных буферов
double IndBuffer[];
double ColorIndBuffer[];

//---- Объявление переменных значений периодов усреднений
int LengthX,LengthR;
//---- Объявление переменной значения вертикального сдвига мувинга
double dPriceShift;
//---- Объявление целых переменных начала отсчёта данных
int min_rates_total,min_rates_;
//+------------------------------------------------------------------+
//|  Получение таймфрейма в виде строки                              |
//+------------------------------------------------------------------+
string GetStringTimeframe(ENUM_TIMEFRAMES timeframe)
  {
//----
   return(StringSubstr(EnumToString(timeframe),7,-1));
//----
  }
//+------------------------------------------------------------------+   
//| SlopeDirectionLine indicator initialization function             | 
//+------------------------------------------------------------------+ 
void OnInit()
  {
//---- Инициализация переменных начала отсчёта данных
   LengthX=int(Length1/2);
   LengthR=int(MathMax(MathSqrt(Length1),1));
   min_rates_=+XMA1.GetStartBars(MA_Method1,Length1,Phase1);
   min_rates_total=min_rates_+XMA1.GetStartBars(MA_Method2,LengthR,Phase2);

//---- Инициализация сдвига по вертикали
   dPriceShift=_Point*PriceShift;

//---- превращение динамического массива в индикаторный буфер
   SetIndexBuffer(0,IndBuffer,INDICATOR_DATA);
//---- превращение динамического массива в цветовой, индексный буфер   
   SetIndexBuffer(1,ColorIndBuffer,INDICATOR_COLOR_INDEX);

//---- осуществление сдвига индикатора 1 по горизонтали
   PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
//---- осуществление сдвига начала отсчёта отрисовки индикатора
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
//---- создание метки для отображения в DataWindow
   PlotIndexSetString(0,PLOT_LABEL,"IndBuffer");
//---- установка значений индикатора, которые не будут видимы на графике
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);

//---- инициализации переменной для короткого имени индикатора
   string shortname;
   string Smooth2=XMA1.GetString_MA_Method(MA_Method2);
   StringConcatenate(shortname,"SlopeDirectionLine(",Length1,", ",LengthR,", ",Smooth2,")");
//---- создание имени для отображения в отдельном подокне и во всплывающей подсказке
   IndicatorSetString(INDICATOR_SHORTNAME,shortname);

//---- определение точности отображения значений индикатора
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//---- завершение инициализации
  }
//+------------------------------------------------------------------+ 
//| SlopeDirectionLine 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[]
                )
  {
//---- проверка количества баров на достаточность для расчёта
   if(rates_total<min_rates_total) return(0);

//---- Объявление переменных с плавающей точкой  
   double price,line,xline;
//---- Объявление целых переменных и получение уже посчитанных баров
   int first,bar,clr;

//---- расчёт стартового номера first для цикла пересчёта баров
   if(prev_calculated>rates_total || prev_calculated<=0// проверка на первый старт расчёта индикатора
      first=0// стартовый номер для расчёта всех баров
   else first=prev_calculated-1// стартовый номер для расчёта новых баров

//---- Основной цикл расчёта индикатора
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      price=PriceSeries(IPC,bar,open,low,high,close);

      line=XMA1.XMASeries(0,prev_calculated,rates_total,MA_Method1,Phase1,Length1,price,bar,false);
      line=2*XMA2.XMASeries(0,prev_calculated,rates_total,MA_Method1,Phase1,LengthX,price,bar,false)-line;
      xline=XMA3.XMASeries(min_rates_,prev_calculated,rates_total,MA_Method2,Phase2,LengthR,line,bar,false);
      //----       
      IndBuffer[bar]=xline+dPriceShift;
     }

//---- корректировка значения переменной first
   if(prev_calculated>rates_total || prev_calculated<=0// проверка на первый старт расчёта индикатора
      first=min_rates_total-1// стартовый номер для расчёта всех баров

//---- Основной цикл раскраски сигнальной линии
   for(bar=first; bar<rates_total; bar++)
     {
      clr=1;
      ColorIndBuffer[bar]=1;
      if(IndBuffer[bar-1]<IndBuffer[bar]) clr=2;
      if(IndBuffer[bar-1]>IndBuffer[bar]) clr=0;
      ColorIndBuffer[bar]=clr;

      if(bar==rates_total-1-SignalBar)
        {
         if(ColorIndBuffer[bar-1]!=2 && clr==2)
           {
            datetime SignalTime=TimeCurrent();
            if(On_Play_Sound) PlaySound(NameFileSound);
            string period=GetStringTimeframe(Period());
            string comment,sTime=" CurrTime="+TimeToString(SignalTime,TIME_MINUTES);
            StringConcatenate(comment,CommentSirName,Symbol(),period," ",sTime," Сигнал на покупку!");
            if(On_Alert) Alert(comment);
            if(On_Push) SendNotification(comment);
            if(On_Email) SendMail(CommentSirName+Symbol()+period,comment);
           }
           
         if(ColorIndBuffer[bar-1]!=0 && clr==0)
           {
            datetime SignalTime=TimeCurrent();
            if(On_Play_Sound) PlaySound(NameFileSound);
            string period=GetStringTimeframe(Period());
            string comment,sTime=" CurrTime="+TimeToString(SignalTime,TIME_MINUTES);
            StringConcatenate(comment,CommentSirName,Symbol(),period," ",sTime," Сигнал на продажу!");
            if(On_Alert) Alert(comment);
            if(On_Push) SendNotification(comment);
            if(On_Email) SendMail(CommentSirName+Symbol()+period,comment);
           }
        }
     }
//----     
   return(rates_total);
  }
//+------------------------------------------------------------------+
   

Ссылка на индикатор https://www.mql5.com/ru/code/1489

/* Так лучше будет  - Vinin  */

Victor Nikolaev
Модератор
14372
Victor Nikolaev 2014.10.26 13:18  
pansa:

Привет,barabashkakvn!

по мqл5 впечатления накапливаю.

Уж коли Вы обратили внимание

посмотрите почему код не хочет работать

сам индикатор адаптировал Коситсин

мqh написал интегер

осталось зделать рабочим.

панса


Индикатор работает

 

pansa
580
pansa 2014.10.26 14:04  
Vinin:

Индикатор работает

 

Victor Nikolaev
Модератор
14372
Victor Nikolaev 2014.10.26 14:51  
pansa:

Где эта библиотека находится?
pansa
580
pansa 2014.10.26 15:03  
Vinin:
Где эта библиотека находится?

Привет,Винин!

ета мqh(  инклуудник)

Victor Nikolaev
Модератор
14372
Victor Nikolaev 2014.10.26 15:34  
pansa:

Привет,Винин!

ета мqh(  инклуудник) находится

#include<winmediaplayer.mqh>


Где Вы этот файл взяли?

Там описание должно было быть еще 

pansa
580
pansa 2014.10.26 17:12  
Vinin:

Где Вы этот файл взяли?

Там описание должно было быть еще 

Винину.

ету мqh написал integer ( forum) интегер

надо какуюто строчку указать

ето все, что я знаю.

панса




pansa
580
pansa 2014.10.28 10:25  
Привет,Форумчане!
Наверно впечатлении больше не будет.
Была без радости любовь-разлука будет без печали!
панса
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий