Spezifikation
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]; } //+------------------------------------------------------------------+
Bewerbungen
1
Bewertung
Projekte
80
13%
Schlichtung
11
0%
/
91%
Frist nicht eingehalten
51
64%
Frei
2
Bewertung
Projekte
3046
66%
Schlichtung
77
48%
/
14%
Frist nicht eingehalten
340
11%
Frei
3
Bewertung
Projekte
496
39%
Schlichtung
27
56%
/
4%
Frist nicht eingehalten
53
11%
Frei
4
Bewertung
Projekte
932
47%
Schlichtung
301
59%
/
25%
Frist nicht eingehalten
124
13%
Arbeitet
5
Bewertung
Projekte
205
26%
Schlichtung
12
25%
/
58%
Frist nicht eingehalten
39
19%
Frei
6
Bewertung
Projekte
2640
61%
Schlichtung
113
45%
/
26%
Frist nicht eingehalten
418
16%
Beschäftigt
7
Bewertung
Projekte
318
35%
Schlichtung
64
13%
/
56%
Frist nicht eingehalten
82
26%
Frei
8
Bewertung
Projekte
16
0%
Schlichtung
9
0%
/
89%
Frist nicht eingehalten
8
50%
Frei
9
Bewertung
Projekte
0
0%
Schlichtung
0
Frist nicht eingehalten
0
Frei
Ähnliche Aufträge
Preciso de um EA que rode em cima de gráfico de renko, estratégia simples de rompimento.
30 - 100 USD
Olá Já possuo um código de um EA que opera entrando e invertendo o movimento conforme o rompimento do candle. Ou seja quando o preço rompe a maxima/minima anterior, ele entra na direção do movimento. Já tenho esse código, preciso que somente seja otimizado, pois eu mesmo quem fiz. Porém minha solicitação é que ele rode em renko também, pois não consigo fazer ele rodar em renko, somente em candle, preciso que o
Hello. I open this work with the intention of changing the indicator that is present in my EA code. This is an EMA 200 code, called STR-EMA. I will send a FINAL-EMA file for the exchange to take place. Furthermore, I would like a simple modification to FINAL-EMA, which is the possibility of changing the period in X candles (it is currently set to pattern 200) Please note that the functionality of the EA should not be
Robô de plataforma mt5
30+ USD
//+------------------------------------------------------------------+ //| SimpleEA.mq5| //| Copyright 2023, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2023, MetaQuotes Software Corp." #property link " https://www.mql5.com " #property version "1.00" #property strict input int FastMAPeriod = 12; // Período da média
Projektdetails
Budget
30 - 200 USD
Für die Entwickler
27
- 180
USD
Ausführungsfristen
von 1 bis 30 Tag(e)