потом просто проверяю какие значения дает, любой из них:
if (diverbuy !=0)
{
Print ("diverbuy = ", diverbuy);
}
и на каждом тике
2013.11.16 09:45:32 2012.02.17 02:45 BakX EURUSD,M15: diverbuy = 2147483647
потом просто проверяю какие значения дает, любой из них:
if (diverbuy !=0)
{
Print ("diverbuy = ", diverbuy);
}
и на каждом тике
2013.11.16 09:45:32 2012.02.17 02:45 BakX EURUSD,M15: diverbuy = 2147483647
какого типа у вас diverbuy и diversell ? int ? вот то-то и оно. должон быть double.
какого типа у вас diverbuy и diversell ? int ? вот то-то и оно. должон быть double.
double sl,tp,sar,pos,bbhigh,bblow,forexglaz,diverbuy,diversell,fxbuy,fxsell;
Они объявлены как double
Вот кусок кода:
// Получаем данные из MACD_Divergence_V1.1
diverbuy = iCustom(Symbol(),0,"MACD_Divergence_V1.1",0,1);
diversell = iCustom(Symbol(),0,"MACD_Divergence_V1.1",1,1);
Вы хоть смотрели как нужно вызывать индикатор через iCustom() ? где список передаваемых параметров ? https://docs.mql4.com/ru/indicators/icustom
//+------------------------------------------------------------------+ //| FX5_MACD_Divergence_V1.1.mq4 | //| FX5 | //| hazem@uk2.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, FX5" #property link "hazem@uk2.net" //---- #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Green #property indicator_color2 Red #property indicator_color3 Magenta #property indicator_color4 Blue //---- #define arrowsDisplacement 0.0001 //---- input parameters extern string separator1 = "*** MACD Settings ***"; extern int fastEMA = 12; extern int slowEMA = 26; extern int signalSMA = 9; extern string separator2 = "*** Indicator Settings ***"; extern bool drawIndicatorTrendLines = true; extern bool drawPriceTrendLines = true; extern bool displayAlert = true; //---- buffers double bullishDivergence[]; double bearishDivergence[]; double macd[]; double signal[]; //---- static datetime lastAlertTime; static string indicatorName; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init()
Иначе можно экспериментировать до окончания времен ;)))).
Вы хоть смотрели как нужно вызывать индикатор через iCustom() ? где список передаваемых параметров ? https://docs.mql4.com/ru/indicators/icustom
Иначе можно экспериментировать до окончания времен ;)))).
Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
Я делал с параметрами и без. Результат ОДИНАКОВ! Попробуйте сами, это займет не более 5 минут. Заодно может быть какие-то ценные мысли появятся.
Вот кусок кода:
// Получаем данные из MACD_Divergence_V1.1
diverbuy = iCustom(Symbol(),0,"MACD_Divergence_V1.1",0,1);
diversell = iCustom(Symbol(),0,"MACD_Divergence_V1.1",1,1);
Читайте документацию
Справочник MQL4 - Технические индикаторы - iCustom
|
|
//---- input parameters
extern string separator1 = "*** MACD Settings ***";
extern int fastEMA = 12;
extern int slowEMA = 26;
extern int signalSMA = 9;
extern string separator2 = "*** Indicator Settings ***";
extern bool drawIndicatorTrendLines = true;
extern bool drawPriceTrendLines = true;
extern bool displayAlert = true;
И где они в вызове iCustom?
Более того, индикатор рисует стрелки на барах с индексом, большим 1. Поэтому, даже если вы правильно укажете внешние параметры, на баре с индексом 1 всегда будет неопределенное значение. Смотрите этот кусок кода
void CalculateIndicator(int countedBars) { for(int i = Bars - countedBars; i >= 0; i--) { CalculateMACD(i); CatchBullishDivergence(i + 2); CatchBearishDivergence(i + 2); } }
Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
Я делал с параметрами и без. Результат ОДИНАКОВ! Попробуйте сами, это займет не более 5 минут. Заодно может быть какие-то ценные мысли появятся.
Тяжко Вам, наверное, при таком уровне понимания тех документации ;).. "при необходимости" обозначает, что если параметры есть, то их необходимо указывать )))))))))))))))))).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые товарищи! Помиогите передать данные из индикатора дивергенции FX5_MACD_Divergence_V1.1 в совтеник, чтобы можно было использовать дивергенцию как сигнал на открытие ордера. Конечно, этот сигнал будет не основным.
Через icustom не получается, буферы, рисующие стрелки дивергенции с каждым тиком передают максимальное число в метаэдиторе: - 2013.11.16 09:45:32 2012.02.17 02:45 BakX EURUSD,M15: diverbuy = 2147483647
и это же число и на селл-дивергенцию. Причем с каждым тиком. Уже второй день экспериментирую, ничего не получается. Очень прошу помощи!
Индикатор прилагаю