droba
Droba

 
Уровень 9

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



рошу написать советник/

Доброшо времени суток.
Прошу написать советник по трем индикаторам:
1.ЕМА50;
2.aNina (прилагается исходник);
3.Hist_StepMAStoch (прилагается исходник);
Объём лота в процентах от свободных средств от величины S/L.
При убыточной сделке лот увеличивается на 1%, после положительной сделки возвращение к первоначальному лоту.
TP и S/L показаны на скринах.
Алгоритм входа в рынок показан на скринах.



aNina_v1.mq4 (7 Kb)
Hist_StepMA_Stoch_KV1_Ex_03.mq4 (6 Kb)
  • +1
  • Просмотров: 1092
  • 3 октября 2022, 17:24
  • droba
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Доработать советник
Следующая запись в группе  
Make a simple Gird EA using this indicator
03 октября 2022
03 октября 2022

Брокер для ваших роботов, 15 лет на рынке

Комментарии (6)

+
0
на 10-е
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 3 октября 2022, 18:18
+
0
Ок!
avatar

  9  droba Автор Сообщений: 239 - Droba

  • 4 октября 2022, 16:39
+
+2
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 10 октября 2022, 21:13
+
0
Все работает, красава. Спасибо.
avatar

  9  droba Автор Сообщений: 239 - Droba

  • 11 октября 2022, 06:50
+
0
Андрей добрый день
Решил попробовать написать советник на индикаторе «Symphonie_Trendline_Indicator_v3.0» по шаблону (твой сод), но
не могу прописать индикатор в советнике.
double _Blu = iCustom(_Symbol, _Period,IndName,CCIPeriod,ATRPeriod,1);
double _Red = iCustom(_Symbol, _Period,IndName,CCIPeriod,ATRPeriod,1);
Помоги.
Вот индикатор
//+------------------------------------------------------------------------+
//| Symphonie_Trendline_Indicator_v3.0.mq4 |
//|Based on basic Trendline by MetaTrader_Experts_and_Indicators |
//+------------------------------------------------------------------------+
#property copyright «Symphonie Trader System»
#property link «MetaTrader_Experts_and_Indicators»

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 DodgerBlue
#property indicator_color2 Red

extern int CCIPeriod=60;
extern int ATRPeriod=24;
double TrendUp[];
double TrendDown[];
int st = 0;
//extern int SlowerEMA = 6;

//+------------------------------------------------------------------+
//| Custom indicator initialization function|
//+------------------------------------------------------------------+
int init()
{
//---- indicators

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(0, TrendUp);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2);
SetIndexBuffer(1, TrendDown);

/*SetIndexStyle(0, DRAW_ARROW, EMPTY);
SetIndexArrow(0, 159);
SetIndexBuffer(0, TrendUp);
SetIndexStyle(1, DRAW_ARROW, EMPTY);
SetIndexArrow(1, 159);
SetIndexBuffer(1, TrendDown);*/

/*for(int i = 0; i < Bars; i++) {
TrendUp[i] = NULL;
TrendDown[i] = NULL;
}*/
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function|
//+------------------------------------------------------------------+
int deinit()
{
//----
/*for(int i = 0; i < Bars; i++) {
TrendUp[i] = NULL;
TrendDown[i] = NULL;
}*/
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function|
//+------------------------------------------------------------------+
int start()
{

int limit, i, counter;
double Range, AvgRange, cciTrendNow, cciTrendPrevious, var;

int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0) return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0) counted_bars--;

limit=Bars-counted_bars;

for(i = limit; i >= 0; i--) {
cciTrendNow = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i);
cciTrendPrevious = iCCI(NULL, 0, CCIPeriod, PRICE_TYPICAL, i+1);

//st = st * 100;

counter = i;
Range = 0;
AvgRange = 0;
for (counter = i; counter >= i-9; counter--) {
AvgRange = AvgRange + MathAbs(High[counter]-Low[counter]);
}
Range = AvgRange/10;
if (cciTrendNow >= st && cciTrendPrevious < st) {
TrendUp[i+1] = TrendDown[i+1];
}

if (cciTrendNow <= st && cciTrendPrevious > st) {
TrendDown[i+1] = TrendUp[i+1];
}

if (cciTrendNow >= st) {
TrendUp[i] = Low[i] — iATR(NULL, 0, ATRPeriod, i);
if (TrendUp[i] < TrendUp[i+1]) {
TrendUp[i] = TrendUp[i+1];
}
}
else if (cciTrendNow <= st) {
TrendDown[i] = High[i] + iATR(NULL, 0, ATRPeriod, i);
if (TrendDown[i] > TrendDown[i+1]) {
TrendDown[i] = TrendDown[i+1];
}
}
}

//----

//----
return(0);
}

//+------------------------------------------------------------------+
avatar

  9  droba Автор Сообщений: 239 - Droba

  • 26 октября 2022, 13:40
+
0
Вам нужно сначала изучить правила использования функции

Функция iCustom()
double iCustom(string symbol, int timeframe, string name, ..., int mode, int shift)
Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории Каталог_терминала\experts\indicators.

Параметры:

symbol — символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.

timeframe — период. Может быть одним из периодов графика. 0 означает период текущего графика.

name — имя пользовательского индикатора.

… — Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.

mode — Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.

shift — Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

Пока можете использовать сокращенный вариант:
double _Blu = iCustom(NULL,0,«Symphonie_Trendline_Indicator_v3.0»,0,1);
double _Red = iCustom(NULL,0,«Symphonie_Trendline_Indicator_v3.0»,1,1);

Но конечно желательно изучить документацию. Проще будет. Сможете сами прописывать любые индикаторы в свои советники в любой момент.
avatar

  16  ssg Сообщений: 817

  • 26 октября 2022, 16:49

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий