помогите написать простой индикатор , по свечам , на вид который должен быть похож на индикатор MACD, минутный и часовой
все очень просто если свеча медвежья то -1 , если бычья то +1 , и суммирование значений, пример графика сделал в экселе
пример
свеча | результат | сумма |
---|---|---|
бык | 1 | 1 |
мишка | -1 | 0 |
мишка | -1 | -1 |
бык | 1 | 0 |
Если именно помочь, значит Вы уже сами пытались что-то сделать и не смогли. Выкладывайте свои труды сюда, посмотрим.
вы правильно подметили , да - не могу понять какие функции использовать, мало опыта , почти нет, можете описать примерно ? допустим:
- определение вида свечи ( цена открытия - цена закрытия)
- сбор этих данным в определенное место
- вычисления
- суммирование
- построение графика
вы правильно подметили , да - не могу понять какие функции использовать, мало опыта , почти нет, можете описать примерно ? допустим:
- определение вида свечи ( цена открытия - цена закрытия)
- сбор этих данным в определенное место
- вычисления
- суммирование
- построение графика
Сначала по шагам:
- Нужно создать новый индикатор в "MQL5 Wizard".
- В самом индикаторе нужен будет только один буфер со стилем рисования DRAW_HISTOGRAM.
- ...
вы правильно подметили , да - не могу понять какие функции использовать, мало опыта , почти нет, можете описать примерно ? допустим:
- определение вида свечи ( цена открытия - цена закрытия)
- сбор этих данным в определенное место
- вычисления
- суммирование
- построение графика
Вот кусочек кода, для примера, из моего класса работающего со свечками.
int CCandles::GetType(int Index=0) { double _Delta= (COpen(Index)-CClose(Index))/Smb.QPoint(); if (MathAbs(_Delta)>1) { if (_Delta>0) return(CTYPE_BEARS); if (_Delta<0) return(CTYPE_BULLS); if (_Delta==0) return(CTYPE_DOJI); }else { return(CTYPE_DOJI); } return(CTYPE_DOJI); }
COpen() - возвращает цену открытия. CClose() - цену закрытия. Index - порядковый номер свечи, 0 - текущая 1 - предыдущая и т.д.
Smb.QPoint() - функция другого моего вспомогательного класса (код приводить не буду, там ни чего в ней особенного нет) возвращает точность котирования аналог Point() но с учетом 4-х или 5 значной точности котирования. То есть если Digits() 4 знака то функция вернет 0.0001 если 5-ть то 0.00001.
Пояснения к коду:
Если разница между открытием и закрытием больше 1-го пункта то считаем что это свеча не доджи иначе это доджи.
Если разница больше нуля то это медвежья свеча. Если меньше нуля то бычья. Равна нулю - доджи.
Сначала по шагам:
- Нужно создать новый индикатор в "MQL5 Wizard".
- В самом индикаторе нужен будет только один буфер со стилем рисования DRAW_HISTOGRAM.
- ...
//+------------------------------------------------------------------+ //| 1.mq4 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot DRAW_HISTOGRAM #property indicator_label1 "DRAW_HISTOGRAM" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- input parameters input int DRAW_HISTOGRAM; //--- indicator buffers double DRAW_HISTOGRAMBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,DRAW_HISTOGRAMBuffer); //--- 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
создал, далее...
- www.mql5.com
Код нужно вставлять в сообщения на форуме правильно: Правильно вставляем код на форуме - так улучшается читабельность (исправьте, пожалуйста своё сообщение).
Далее, у индикатора два основных состояния работы:
- Первоначальная загрузка или когда изменилась история (история могла изменится на сервере или подкачались новые данные) - при этом параметр OnCalculate=0;
- Обычная работа - когда все бары просчитаны и нужно только пересчитать самый свежий бар
помогите написать простой индикатор , по свечам , на вид который должен быть похож на индикатор MACD, минутный и часовой
все очень просто если свеча медвежья то -1 , если бычья то +1 , и суммирование значений, пример графика сделал в экселе
пример
свеча | результат | сумма |
---|---|---|
бык | 1 | 1 |
мишка | -1 | 0 |
мишка | -1 | -1 |
бык | 1 | 0 |
то есть вы хотите складывать показатели часовых и минутных свечек..дело благое, да вот только
пока свеча не закрылась, она какая - бычья или медвежья?
создал, далее...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
помогите написать простой индикатор , по свечам , на вид который должен быть похож на индикатор MACD, минутный и часовой
все очень просто если свеча медвежья то -1 , если бычья то +1 , и суммирование значений, пример графика сделал в экселе
пример