Добрый день!
Ищу поручителя.
Просьба написать сигнальщик на основе скользящей средней и индикатора PriseBorder( он у Вас есть).
Алгоритм следующий. Канал индикатора PriseBorder находится целиком либо выше скользящей средней, либо ниже скользящей. Границы канала не должны касаться скользящей средней. Если канал индикатора PriseBorder находится выше скользящей средней, и цена пробила верхнюю границу канала, должен воспроизвестись алерт с указанием, на каком инструменте и таймфрейме это произошло. Если канал индикатора PriseBorder находится ниже скользящей средней, и цена пробила нижнюю границу канала, должен воспроизвестись алерт с указанием, на каком инструменте и таймфрейме это произошло. Примеры на скриншотах. В параметрах сигнальщика должны быть все параметры, присущие индикатору PriseBorder и скользящей средней.
Это работает как на форексе на любых таймфреймах, так и на бинарных опционах.
Комментарии (5)
<code>//+------------------------------------------------------------------+ //| PriceBorder.mq4 | //| Copyright 2020, | //| http://www.forexsystems.biz | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, " #property link "http://www.forexsystems.biz" #property version "1.00" #property strict #property indicator_chart_window extern int MA=5; extern string IndName = "©Price Border (1)"; extern string TimeFrame = "All tf"; extern int HalfLength = 61; extern int Price = 0; extern double ATRMultiplier = 2.6; extern int ATRPeriod = 110; extern bool Interpolate = TRUE; bool b=1,s=1; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping //--- 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[]) { //--- double ma = NormalizeDouble(iMA(NULL,0,MA,0,0,0,0),_Digits); double up=iCustom(NULL,0,IndName,TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0); double dn=iCustom(NULL,0,IndName,TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0); if(Ask<ma && up<ma && Ask<dn && b) { Alert(_Symbol+" BUY!"); b=0; s=1; } if(Bid>ma && dn>ma && Bid>up && s) { Alert(_Symbol+" SELL!"); s=0; b=1; } Comment("\n UP: ",up, "\n DN: ",dn, "\n MA: ",ma, "\n BID: ",Bid); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ </code>Редактирован: 16 ноября 2020, 11:5212 Slava78 Сообщений: 598
12 Sam34 Сообщений: 165 - Sem34
В папке индикаторы, запускаете любой ненужный индюк.
Копируете код, вставляете вместо не нужного.
Компилируете, меняете название индюка. Обновить
12 Slava78 Сообщений: 598
12 marattmb Автор Сообщений: 752
35 AM2 Сообщений: 16664 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий