Работа завершена
Время выполнения 11 минут
Отзыв от заказчика
Работа была не сложная, но выполнена быстро и без замечаний. Результатом доволен.
Отзыв от исполнителя
Отличный заказчик! Спасибо за заказ!
Техническое задание
Требуется добавить алерты (всплывающее окно, звуковой сигнал, пуш-уведомление, e-mail) в готовый индикатор-стрелочник (tma centered bands arr) при появлении стрелок
//------------------------------------------------------------------ #property copyright "mladen" #property link "www.forex-tsd.com" // Inserted by Ale: rebound arrows and TMA angle caution //------------------------------------------------------------------ #property indicator_chart_window #property indicator_buffers 7 #property indicator_plots 6 #property indicator_label1 "Centered TMA" #property indicator_type1 DRAW_COLOR_LINE #property indicator_color1 clrLightSkyBlue,clrPink #property indicator_style1 STYLE_SOLID #property indicator_width1 2 #property indicator_label2 "Centered TMA upper band" #property indicator_type2 DRAW_LINE #property indicator_color2 clrLightSkyBlue #property indicator_style2 STYLE_DOT #property indicator_label3 "Centered TMA lower band" #property indicator_type3 DRAW_LINE #property indicator_color3 clrPink #property indicator_style3 STYLE_DOT // ** inserted code: #property indicator_label4 "Rebound down" #property indicator_type4 DRAW_ARROW #property indicator_color4 clrPink #property indicator_width4 2 #property indicator_label5 "Rebound up" #property indicator_type5 DRAW_ARROW #property indicator_color5 clrLightSkyBlue #property indicator_width5 2 #property indicator_label6 "Centered TMA angle caution" #property indicator_type6 DRAW_ARROW #property indicator_color6 clrGold #property indicator_width6 3 // ** // // // // // enum enPrices { pr_close, // Close pr_open, // Open pr_high, // High pr_low, // Low pr_median, // Median pr_typical, // Typical pr_weighted, // Weighted pr_average, // Average (high+low+oprn+close)/4 pr_haclose, // Heiken ashi close pr_haopen , // Heiken ashi open pr_hahigh, // Heiken ashi high pr_halow, // Heiken ashi low pr_hamedian, // Heiken ashi median pr_hatypical, // Heiken ashi typical pr_haweighted, // Heiken ashi weighted pr_haaverage // Heiken ashi average }; // // // // // input int HalfLength = 12; // Centered TMA half period input enPrices Price = pr_weighted; // Price to use input int AtrPeriod = 100; // Average true range period input double AtrMultiplier = 2; // Average true range multiplier // ** inserted code: input int TMAangle = 4; // Centered TMA angle caution. In pips // ** // // // // // double tmac[]; double tmau[]; double tmad[]; double colorBuffer[]; // ** inserted code: double ReboundD[], ReboundU[], Caution[] ; // ** //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // // int OnInit() { SetIndexBuffer(0,tmac,INDICATOR_DATA); SetIndexBuffer(1,colorBuffer,INDICATOR_COLOR_INDEX); SetIndexBuffer(2,tmau,INDICATOR_DATA); SetIndexBuffer(3,tmad,INDICATOR_DATA); // ** inserted code: SetIndexBuffer(4,ReboundD,INDICATOR_DATA); PlotIndexSetInteger(3, PLOT_ARROW, 226); SetIndexBuffer(5,ReboundU,INDICATOR_DATA); PlotIndexSetInteger(4, PLOT_ARROW, 225); SetIndexBuffer(6,Caution,INDICATOR_DATA); PlotIndexSetInteger(5, PLOT_ARROW, 251); // ** // // // // // IndicatorSetString(INDICATOR_SHORTNAME," TMA centered ("+string(HalfLength)+")"); return(0); } //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // // double prices[]; 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 (ArraySize(prices)!=rates_total) ArrayResize(prices,rates_total); for (int i=(int)MathMax(prev_calculated-1, 0); i<rates_total; i++) prices[i] = getPrice(Price,open,close,high,low,i,rates_total); for (int i=(int)MathMax(prev_calculated-HalfLength,0); i<rates_total; i++) { double atr = 0; for (int j=0; j<AtrPeriod && (i-j-11)>=0; j++) atr += MathMax(high[i-j-10],close[i-j-11])-MathMin(low[i-j-10],close[i-j-11]); atr /= AtrPeriod; double sum = (HalfLength+1)*prices[i]; double sumw = (HalfLength+1); for(int j=1, k=HalfLength; j<=HalfLength; j++, k--) { if ((i-j)>=0) { sum += k*prices[i-j]; sumw += k; } if ((i+j)<rates_total) { sum += k*prices[i+j]; sumw += k; } } tmac[i] = sum/sumw; if (i>0) { colorBuffer[i] = colorBuffer[i-1]; if (tmac[i] > tmac[i-1]) colorBuffer[i]= 0; if (tmac[i] < tmac[i-1]) colorBuffer[i]= 1; } tmau[i] = tmac[i]+AtrMultiplier*atr; tmad[i] = tmac[i]-AtrMultiplier*atr; // ** inserted code: ReboundD[i] = ReboundU[i] = Caution[i] = EMPTY_VALUE; if(i > 0) { if(high[i-1] > tmau[i-1] && close[i-1] > open[i-1] && close[i] < open[i]) { ReboundD[i] = high[i] + AtrMultiplier*atr/2; if(tmac[i] - tmac[i-1] > TMAangle*_Point) Caution[i] = ReboundD[i] + 10*_Point; } if(low[i-1] < tmad[i-1] && close[i-1] < open[i-1] && close[i] > open[i]) { ReboundU[i] = low[i] - AtrMultiplier*atr/2; if(tmac[i-1] - tmac[i] > TMAangle*_Point) Caution[i] = ReboundU[i] - 10*_Point; } } // ** } return(rates_total); } //------------------------------------------------------------------ // //------------------------------------------------------------------ // // // // // double workHa[][4]; double getPrice(enPrices price, const double& open[], const double& close[], const double& high[], const double& low[], int i, int bars) { if (price>=pr_haclose && price<=pr_haaverage) { if (ArrayRange(workHa,0)!= bars) ArrayResize(workHa,bars); // // // // // double haOpen; if (i>0) haOpen = (workHa[i-1][2] + workHa[i-1][3])/2.0; else haOpen = open[i]+close[i]; double haClose = (open[i] + high[i] + low[i] + close[i]) / 4.0; double haHigh = MathMax(high[i], MathMax(haOpen,haClose)); double haLow = MathMin(low[i] , MathMin(haOpen,haClose)); if(haOpen <haClose) { workHa[i][0] = haLow; workHa[i][1] = haHigh; } else { workHa[i][0] = haHigh; workHa[i][1] = haLow; } workHa[i][2] = haOpen; workHa[i][3] = haClose; // // // // // switch (price) { case pr_haclose: return(haClose); case pr_haopen: return(haOpen); case pr_hahigh: return(haHigh); case pr_halow: return(haLow); case pr_hamedian: return((haHigh+haLow)/2.0); case pr_hatypical: return((haHigh+haLow+haClose)/3.0); case pr_haweighted: return((haHigh+haLow+haClose+haClose)/4.0); case pr_haaverage: return((haHigh+haLow+haClose+haOpen)/4.0); } } // // // // // switch (price) { case pr_close: return(close[i]); case pr_open: return(open[i]); case pr_high: return(high[i]); case pr_low: return(low[i]); case pr_median: return((high[i]+low[i])/2.0); case pr_typical: return((high[i]+low[i]+close[i])/3.0); case pr_weighted: return((high[i]+low[i]+close[i]+close[i])/4.0); case pr_average: return((high[i]+low[i]+close[i]+open[i])/4.0); } return(0); }
Откликнулись
1
Оценка
Проекты
488
33%
Арбитраж
25
40%
/
44%
Просрочено
7
1%
Загружен
2
Оценка
Проекты
632
26%
Арбитраж
89
73%
/
13%
Просрочено
12
2%
Свободен
3
Оценка
Проекты
167
34%
Арбитраж
3
33%
/
33%
Просрочено
3
2%
Свободен
4
Оценка
Проекты
377
33%
Арбитраж
2
100%
/
0%
Просрочено
0
Работает
5
Оценка
Проекты
50
28%
Арбитраж
2
0%
/
0%
Просрочено
0
Свободен
6
Оценка
Проекты
531
32%
Арбитраж
23
65%
/
9%
Просрочено
15
3%
Свободен
7
Оценка
Проекты
11
27%
Арбитраж
0
Просрочено
0
Свободен
8
Оценка
Проекты
21
19%
Арбитраж
3
67%
/
0%
Просрочено
3
14%
Работает
9
Оценка
Проекты
1033
39%
Арбитраж
47
49%
/
23%
Просрочено
84
8%
Свободен
10
Оценка
Проекты
178
54%
Арбитраж
3
33%
/
33%
Просрочено
6
3%
Свободен
11
Оценка
Проекты
53
25%
Арбитраж
0
Просрочено
5
9%
Работает
12
Оценка
Проекты
402
38%
Арбитраж
82
41%
/
20%
Просрочено
70
17%
Работает
13
Оценка
Проекты
927
48%
Арбитраж
301
59%
/
25%
Просрочено
124
13%
Загружен
14
Оценка
Проекты
143
34%
Арбитраж
11
9%
/
55%
Просрочено
26
18%
Работает
Похожие заказы
Нужен индикатор , рисующий вертикальную линию через все подокна. Линия рисуется от последней закрытой (завершенной ) свечи и после , закрытия следующей свечи , перерисовывается на нее, а предыдущая линия удаляется автоматически
Создать мультивалютный сеточный советник
30 - 70 USD
Есть текущий сеточный советник я хочу его модифицировать либо же создать с нуля новый сеточный мультивалютный советник. Мультивалютность нужна для уменьшения просадки и с целью частичного хеджирования. Нужен человек кто делал что-то подобное и имеет опыт написания мультивалютных советников
Нужно решение которое поможет сокращать просадку когда советник попадает в ситуацию с зависающими убыточными сделками На данный момент алгоритм советника прост это сетка. Нужны варианты которые помогут улучшить стратегию. Пожалуйста пишите ваши реальные варианты из практики
Нужна помощь в формализации и алгоритмизации торговых идей для составления Технического Задания!
30 - 200 USD
Индикатор оригинала не перерисовывается, соответственно когда будете вносить изменения в алгоритме индикатора, тоже не должен перерисовыватся. Необходимо найти в алгоритме индикатора, где есть условия, при которой индикатор выдает уведомления. Нужно посмотреть с расчетом на одну свечу назад на уже закрытой свече на каких условиях находится когда свеча открывалась, и на основание этого создать новое условие, чтобы
Нужно сконвертировать индикатор на языке MQL5( платформа MT5) в Pine Script(платформа Tradingview)
30+ USD
Нужно сконвертировать индикатор на языке MQL5( платформа MT5) в Pine Script(платформа Tradingview) Нужно сконвертировать индикатор на языке MQL5( платформа MT5) в Pine Script(платформа Tradingview) Добавить отображение сигнала стрелкой: Пробой канала вверх - стрелка вверх Пробой канала вниз - стрелка вниз
rewrite the macd(trading view) code on mt5 // @version= 5 indicator ( title = "Moving Average Convergence Divergence" , shorttitle = "MACD" , timeframe = "" , timeframe_gaps = true ) // Getting inputs fast_length = input ( title = "Fast Length" , defval = 12 ) slow_length = input ( title = "Slow Length" , defval = 26 ) src = input ( title = "Source" , defval = close ) signal_length = input.int ( title = "Signal
Необходимо адаптировать утилиту для отправки сообщений из платформы MetaTrader 4 (MT4) в мессенджер Discord. Утилита уже написана и функционирует успешно для отправки сообщений в Telegram. Интеграция с API Discord для отправки сообщений. Поддержка различных типов сообщений (текстовых, текст со скриншотами)
Есть советник ZIgZag (исходники предоставлю), который открывает/закрывает ордера на экстремумах текущего таймфрейма. Нужно добавить поддержку других таймфреймов и сделать MTF. То есть, чтобы можно было выбрать открытие/закрытие при совпадении эстремумов на не нескольких выбранных таймфреймах. Выбрали, например, 5М и 1H значит открываем/закрываем ордера, если экстремумы совпали на этих ТФ. Или сразу три, например, 15M
Сигнал бай: гистограмма пересекает 0 уровень цвет зеленый гистограмма выше 0, после красного 1-ая гистограмма цвет зеленый Сигнал Селл: Гистограмма пересекает 0 цвет красный Гистограмма ниже 0, после зеленого цвета 1-ая гистограмма красного цвета. Сигнал выдается после закрытия свечи
Приветствую Есть индикатор в трейдинг вью. Нужно чтоб индикатор присылал уведомления (либо в телеграмм, либо еще куда то) если найдет ситуацию. Привожу примерное ТЗ : https://i.gyazo.com/9144b0882344d06b1b35dd20d2728e44.png тут есть синий прямоугольник. Это (FVG) (FVB). Вот когда это он нашел, нужно присылать уведомления в ТГ. Причем нужно чтоб он это делал на 10(50) инструментах. еще надо на этом примере - мы видим
Информация о проекте
Бюджет
30+ USD
Исполнителю
27
USD