Specifiche
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]; } //+------------------------------------------------------------------+
Con risposta
1
Valutazioni
Progetti
80
13%
Arbitraggio
11
0%
/
91%
In ritardo
51
64%
Gratuito
2
Valutazioni
Progetti
3102
66%
Arbitraggio
77
48%
/
14%
In ritardo
340
11%
In elaborazione
3
Valutazioni
Progetti
496
39%
Arbitraggio
27
56%
/
4%
In ritardo
53
11%
Gratuito
4
Valutazioni
Progetti
933
47%
Arbitraggio
303
59%
/
25%
In ritardo
125
13%
In elaborazione
5
Valutazioni
Progetti
205
26%
Arbitraggio
12
25%
/
58%
In ritardo
39
19%
Gratuito
6
Valutazioni
Progetti
2696
62%
Arbitraggio
116
45%
/
25%
In ritardo
420
16%
In elaborazione
7
Valutazioni
Progetti
320
35%
Arbitraggio
64
13%
/
56%
In ritardo
83
26%
Gratuito
8
Valutazioni
Progetti
16
0%
Arbitraggio
9
0%
/
89%
In ritardo
8
50%
Gratuito
9
Valutazioni
Progetti
0
0%
Arbitraggio
0
In ritardo
0
Gratuito
Ordini simili
Terms of Reference for Indicator Development 1. Objective To develop a signal indicator for binary options in MQL4 or MQL5 that identifies entry and exit points on the chart based on market trends and patterns shown in the videos on the Trendify Binary Options YouTube channel . This channel provides practical examples of the expected behavior and functionality of the indicator. 2. Main References The primary
OLÁ. EU PRECISO CRIAR UM ROBO PARA TRABALHAR COM OS DADOS HISTORICOS NO MT5, ELE DEVE PEGAR OS TICKS, DADOS DE UM DIA ESPECIFICADO, COM HORA E MINUTO. E SIMULAR A ABERTURA DE UMA ORDEM PENDENTE PARA ME INFORMAR SE OUVE SLIPPAGE E QUAL FOI O VALOR EM PIPS DA SLIPPAGE NAQUELA DATA, MINUTO E SEGUNDO ESPECIFICADO. APENAS ISSO. QUERO TRABALHAR COM DADOS PASSADOS (HISTORICOS)
STRATEGY DEFINITION: This setup is based on the volatility of the "X" minute chart, combining the alignment of averages from different timeframes! It considers the alignment of the averages for the continuity of direction, providing excellent movements. TRADE DYNAMICS TYPE OF AVERAGES: EXPONENTIAL. TIMEFRAME: 1 MINUTE TRADE DYNAMICS: WHEN THE "A" EXP MOVING AVERAGE OF "X" MINUTES + "B" EXP OF "X" MINUTES + "C" EXP
Informazioni sul progetto
Budget
30 - 200 USD
Per lo sviluppatore
27
- 180
USD
Scadenze
da 1 a 30 giorno(i)