Техническое задание
Gostaria de criar um EA baseado no indicador listado abaixo de tal forma que a entrada na compra seja realizada quando a média ficar verde e a entrada na venda seja realizada quando a média ficar vermelha. Em estando comprado ou vendido, quero que o EA inverta a posição caso a média sinalize venda, se eu estiver comprado, ou sinalize compra, se eu estiver vendido. Preciso também que o EA permita entrada de compra e/ou venda com opção de se colocar automaticamente Stop Loss e Stop Gain. Preciso também da opção de se delimitar diariamente a hora e minuto de início e a hora e minuto final de operação diária do EA. Segue abaixo o código do indicador: //+------------------------------------------------------------------+ //| tabajara2.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Patrick Corrêa Muniz" #property version "1.01" #property indicator_chart_window #property indicator_buffers 7 #property indicator_plots 2 //--- plot media #property indicator_label1 "media" #property indicator_type1 DRAW_COLOR_LINE #property indicator_color1 clrRed,clrForestGreen,clrYellow,C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0' #property indicator_style1 STYLE_SOLID #property indicator_width1 2 //--- plot candles #property indicator_label2 "candles" #property indicator_type2 DRAW_COLOR_CANDLES #property indicator_color2 clrRed,clrForestGreen,clrBlack,clrGray,C'0,0,0',C'0,0,0',C'0,0,0',C'0,0,0' #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- indicator buffers double mediaBuffer[]; double mediaColors[]; double candlesOpenBuffer[]; double candlesHighBuffer[]; double candlesLowBuffer[]; double candlesCloseBuffer[]; double candlesColors[]; double mediavalue[]; int mediaHandle; input int PeriodoMedia=20; input ENUM_MA_METHOD TipoMedia=MODE_SMA; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,mediaBuffer,INDICATOR_DATA); SetIndexBuffer(1,mediaColors,INDICATOR_COLOR_INDEX); SetIndexBuffer(2,candlesOpenBuffer,INDICATOR_DATA); SetIndexBuffer(3,candlesHighBuffer,INDICATOR_DATA); SetIndexBuffer(4,candlesLowBuffer,INDICATOR_DATA); SetIndexBuffer(5,candlesCloseBuffer,INDICATOR_DATA); SetIndexBuffer(6,candlesColors,INDICATOR_COLOR_INDEX); mediaHandle=iMA(_Symbol,_Period,PeriodoMedia,0,TipoMedia,PRICE_CLOSE); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ 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[]) { int start; if(prev_calculated==0) { start=1; }else{ start=prev_calculated-1; } CopyBuffer(mediaHandle,0,0,rates_total,mediaBuffer); CopyBuffer(mediaHandle,0,0,rates_total,mediavalue); for(int i=start; i<rates_total; i++) { DefineColorMedia(mediavalue,i,close); DefineColorCandle(mediavalue,i,close,open,high,low); } return(rates_total); } //+------------------------------------------------------------------+ //|Colors //| 0 = Red //| 1 = Green //| 2 = yellow | //+------------------------------------------------------------------+ void DefineColorMedia(double &mediavalue[],int index,const double &close[]) { bool fechamentoMaiorQueMediaeMediaAscendente=(close[index]>mediavalue[index] && mediavalue[index]>mediavalue[index-1]); bool fechamentoMenorQueMediaeMediaDescendente=(close[index]<mediavalue[index] && mediavalue[index]<mediavalue[index-1]); if(fechamentoMaiorQueMediaeMediaAscendente) { mediaColors[index]=1; }else if(fechamentoMenorQueMediaeMediaDescendente) { mediaColors[index]=0; }else{ mediaColors[index]=2; } } //+------------------------------------------------------------------+ //|Colors //|0 = Red //|1 = Green //|2 = Black //|3 = Gray | //+------------------------------------------------------------------+ void DefineColorCandle(double &mediavalue[],int index,const double &close[],const double &open[],const double &high[],const double &low[]) { DefineBuffersCandle(index,close,open,high,low); bool candleDeForcaMediaAscendente=close[index]>close[index-1] && close[index]>mediavalue[index] && mediavalue[index]>mediavalue[index-1]; bool candleDeCorrecaoMediaAscendente=close[index]<close[index-1] && close[index]>mediavalue[index] && mediavalue[index]>mediavalue[index-1]; bool candleDeForcaMediaDescendente=close[index]<close[index-1] && close[index]<mediavalue[index] && mediavalue[index]<mediavalue[index-1]; bool candleDeCorrecaoMediaDescendente=close[index]>close[index-1] && close[index]<mediavalue[index] && mediavalue[index]<mediavalue[index-1]; if(candleDeForcaMediaAscendente) { candlesColors[index]=1; }else if(candleDeCorrecaoMediaAscendente){ candlesColors[index]=2; }else if(candleDeForcaMediaDescendente){ candlesColors[index]=0; }else if(candleDeCorrecaoMediaDescendente){ candlesColors[index]=3; } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void DefineBuffersCandle(int index,const double &close[],const double &open[],const double &high[],const double &low[]) { candlesOpenBuffer[index] = open[index]; candlesHighBuffer[index] = high[index]; candlesLowBuffer[index]=low[index]; candlesCloseBuffer[index]=close[index]; } //+------------------------------------------------------------------+
Откликнулись
1
Оценка
Проекты
80
13%
Арбитраж
11
0%
/
91%
Просрочено
51
64%
Свободен
2
Оценка
Проекты
3080
66%
Арбитраж
77
48%
/
14%
Просрочено
340
11%
Свободен
3
Оценка
Проекты
496
39%
Арбитраж
27
56%
/
4%
Просрочено
53
11%
Свободен
4
Оценка
Проекты
933
47%
Арбитраж
302
59%
/
25%
Просрочено
125
13%
Загружен
5
Оценка
Проекты
205
26%
Арбитраж
12
25%
/
58%
Просрочено
39
19%
Свободен
6
Оценка
Проекты
2676
62%
Арбитраж
114
46%
/
25%
Просрочено
420
16%
Загружен
7
Оценка
Проекты
320
35%
Арбитраж
64
13%
/
56%
Просрочено
83
26%
Свободен
8
Оценка
Проекты
16
0%
Арбитраж
9
0%
/
89%
Просрочено
8
50%
Свободен
9
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
Похожие заказы
Olá ! Preciso de orçamentos para criar um combiner (indicador que combina indicadores e estratégias) para usar no meta trader 5! Ele precisa ter as seguintes coisas : 1. Exibir um painel de backtest com informações de acerto e erro onde eu possa selecionar se deve mostrar ou não o painel e até quantos martingales ele deve mostrar. 2. Ter um campo para seleção de quantidade de velas para backtest 3. Ter a opção de
Preciso de um EA para operar Ações da Bovespa
30 - 60 USD
Preciso de um Robô que opere comprando uma ação e vendendo outra ação de forma simultânea, quando este ultrapassasse a estratégia proposta (estratégia com bandas de bollinger - que deverá ser configurável), faz uso correlação entre ativos para estabelecer o momento adequado de entrada tanto na ponta compradora como na ponta vendedora. Robô ira operar em pares da B3 - bolsa brasileira (ação A/ação B), janela de
Информация о проекте
Бюджет
30 - 200 USD
Исполнителю
27
- 180
USD
Сроки выполнения
от 1 до 30 дн.