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
3357
68%
Schlichtung
77
48%
/
14%
Frist nicht eingehalten
342
10%
Arbeitet
Veröffentlicht: 1 Beispiel
3
Bewertung
Projekte
547
40%
Schlichtung
30
57%
/
3%
Frist nicht eingehalten
57
10%
Frei
Veröffentlicht: 11 Beispiele
4
Bewertung
Projekte
945
47%
Schlichtung
309
58%
/
27%
Frist nicht eingehalten
125
13%
Frei
5
Bewertung
Projekte
205
26%
Schlichtung
12
25%
/
58%
Frist nicht eingehalten
39
19%
Frei
6
Bewertung
Projekte
2906
63%
Schlichtung
122
44%
/
25%
Frist nicht eingehalten
429
15%
Frei
7
Bewertung
Projekte
333
35%
Schlichtung
66
12%
/
58%
Frist nicht eingehalten
87
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
1️ ⃣ Informações Gerais Plataforma: MetaTrader 5 Tipo: Expert Advisor (EA) Operação: Hedge + Grid Dinâmico Indicador base: Average True Range (ATR período 20) 2️ ⃣ LÓGICA OPERACIONAL 🔹 2.1 Abertura Inicial O robô trabalha sempre com ordem de compra e venda ao mesmo tempo (HEDGE) e o fechamento é sempre usando GRID que tem multiplicador de lote e o tamanho (espaçamento) dinâmico com base em um fator de
Robo de elite
40 - 100 USD
seu Robô de Elite: Precisão: Filtros RSI e Price Action. Rentabilidade: Lote dinâmico baseado no capital (Compound Interest). Automação 24h: Filtro de horário para evitar spreads altos. Satisfação: Dashboard interativo com "Botão de Pânico"
EA baseado em um Canal de preço
30 - 50 USD
Já tenho um código MQL5 com uma base do funcionamento. Basicamente o EA traça um canal na virada do dia (penso que utilizar horário seria melhor em razão da diferença entre corretoras), com base em um número x de candles, calcula e posiciona ordens stop com base em % do capital. Caso uma ordem aberta venha a stopar, o EA deve realizar uma virada de mão com base no mesmo canal, contudo recalculando o lote para que
//+------------------------------------------------------------------+ //| EA Cruzamento de Médias MT5 | //+------------------------------------------------------------------+ #property strict #include <Trade/Trade.mqh> CTrade trade; //---- Inputs input int FastMAPeriod = 20; input int SlowMAPeriod = 50; input double LotSize = 0.01; input int StopLoss = 300; input int TakeProfit = 600; //----
TradingView to MT5 Webhook Bridge - Futures to Spot Execution Project Goal I need a developer to build a bridge between my TradingView indicator in the futures market and my existing MetaTrader 5 EA in the spot market. When my TradingView indicator generates a BUY or SELL signal on a futures symbol, for example 6A1!, it must automatically trigger my MT5 EA to open a trade on the corresponding spot symbol, for example
Tenho um indicador e quero fazer um expert dele para rodar automático porem só tenho o arquivo .ex4 e não .mq4 Indicador mostra setas no grafico no momento ideal para comprar e vender
Projektdetails
Budget
30 - 200 USD
Ausführungsfristen
von 1 bis 30 Tag(e)