Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Pergunta da EA
Olá Codersguru,
Estou tentando aprender programação e estou usando seu material, deixe-me dizer que é excelente! passo a passo e simples de seguir, obrigado por isso.
Tenho uma pergunta, já que você usa a cruz ema como exemplo para a EA, eu estava pensando em usar o indicador stepMA_7.2 em vez de ema. Você acha que o stepMA_7.2 funcionará? ou o código precisará ser reordenado ou talvez seja necessário mais código adicional?
Eu estava pensando que apenas uma troca de indicador no código deveria surficar.
Obrigado de antemão
Abraço.
Isto está errado: as barras anteriores são contadas positivamente
Obrigado.
Ainda estou tendo alguns problemas. As ordens de compra são abertas corretamente, mas todas são fechadas no momento do fechamento, ignorando as condições de saída.
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}Médiamóvel de outro indicador
Descobrimos isso.
verificação de posições em aberto dentro de uma faixa
Estou tentando verificar as posições abertas dentro de x pips, se nenhuma posição estiver aberta, abrirá uma. Não funciona e apenas abre posições continuamente, alguém pode ajudar?
se(comprandoPosição)
{
weBeBuying = verdadeiro;
total de ordens = EncomendasTotal();
for(i=0;i<totalordens;i++)
{
OrderSelect(i,SELECT_BY_POS);
if((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber))
{
tipo = OrderType();
if((type == OP_BUY) ||| (type == OP_BUYLIMIT))
{
if(((Bid+spread) - OrderOpenPrice()) > -0,0013)
weBeBuying = falso;
}
}
}
}
if(weBeBuying==verdadeiro)
OrderSend(Symbol(),OP_BUY,lots,Bid+spread,slippage,0,0,NULL,magicNumber,0,Green);
MA de um indicador iCustom
Como codificar a declaração em uma ea para referenciar uma Média Móvel de 7, Suave, de um indicador iCustom? O que equivale a usar uma Média Móvel usando os dados dos primeiros indicadores. Você pode fazer isso ao exibir um indicador iCustom e ter um MA do indicador (usando dados dos primeiros indicadores), mas como codificá-lo em uma ea??
Por favor, ajude-me nesta afirmação!
Agradeço antecipadamente por sua ajuda!
Dave
Alguém pode ajudar com esta???? Por favor, !!!!
Acho que consegui!
LR0=iCustom(NULL,0, "Laguerre RSI LONG & SHORT ENTRY",0,0); // GAMMA ÚTIL
Ainda preciso de ajuda - Você pode me ajudar!
Se você puder postar suas perguntas relacionadas à MQL4, farei o possível para respondê-las.
para código de erro.
Acabo de me informar que em todo meu especialista, eu tenho um código de erro "OrderModify error 1", mesmo com um especialista como o do Coders Guru, abaixo,
por quê?
Obrigado!
//+------------------------------------------------------------------+
//| PriceCross.mq4 |
//| Coders Guru |
//| https://www.mql5.com/en/forum |
//+------------------------------------------------------------------+
#propriedade copyright "Coders Guru"
#link da propriedade "https://www.forex-tsd.com"
//---- Inclui
#incluir
//---- Limites comerciais
duplo TakeProfit externo = 200;
TrailingStop duplo externo = 50;
StopLoss duplo externo = 50;
Duplo Externo Lots = 0,1;
Exterior int Slippage = 5;
//--- Opções externas
Corrente Interior Externa Bar = 1;
HedgeLevel int externo = 6;
Expiração dupla externa = 7200;
Tamanho int externo = 4;
Exterior int Etapa = 1;
bool externo UseClose = verdadeiro;
//--- Configurações dos indicadores
MaMode int externo = 3;
MaPeriodo MaPeriodo int externo = 24;
//--- Variáveis globais
int MagicNumber = 101090;
string ExpertComment = "PriceCross";
bool LimitPairs = verdadeiro;
bool LimitFrame = verdadeiro;
int TimeFrame = 60;
string LP[] = {"EURUSD", "USDCHF", "GBPUSD", "USDJPY"}; // adicionar/remover a paris que você deseja limitar.
bool Optimize = true;
int NumberOfTries = 5;
//+------------------------------------------------------------------
int init()
{
retorno(0);
}
int deinit()
{
retorno(0);
}
//+------------------------------------------------------------------
bool isNewSymbol(string current_symbol)
{
//loop através de toda a ordem aberta e comparar os símbolos
int total = EncomendasTotal();
for(int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
string selected_symbol = OrderSymbol();
if (símbolo_símbolo_actual ==símbolo_seleccionado && OrderMagicNumber()==Número_de_ordem)
retorno (Falso);
}
retorno (Verdadeiro);
}
//+------------------------------------------------------------------+
int start()
{
int cnt, bilhete, total,n;
dupla tendência ;
if(Bars<100) {Imprimir("barras inferiores a 100"); retornar(0);}
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("Esta EA não está trabalhando com este TimeFrame!"); return(0);}
}
if(LimitPairs)
{
if(AllowedPair(Symbol()) == falso) {Print("Esta EA não está trabalhando com esta moeda!"); return(0);}
}
tendência = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar);
//--- Condições comerciais
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
se (Abrir[1]tendência)
BuyCondition = verdadeiro;
se (Abrir[1]>tendência && Fechar[1]<tendência)
SellCondition = verdadeiro;
se (Abrir[1]>tendência && Fechar[1]<tendência)
CloseBuyCondition = true;
se (Aberto[1]tendência)
CloseSellCondition = true;
total = EncomendasTotal();
if(total < 1 ||| isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- Condição de compra
{
bilhete = OpenOrder(OP_BUY); //<-- Ordem de Compra Aberta
CheckError(bilhete, "BUY");
for(n=0 ; n< Tamanho ; n+++)
{
ticket = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
retorno(0);
}
if(SellCondition) //<-- Condição de venda
{
bilhete = OpenOrder(OP_SELL); //<-- Ordem de venda aberta
CheckError(bilhete, "SELL");
for(n=0 ; n < Tamanho ; n+++)
{
ticket = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
retorno(0);
}
retorno(0);
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- Abertura de posição longa
{
if(UseClose)
{
if(CloseBuyCondition) //<-- Feche o pedido e saia!
{
CloseOrder(OrderType()); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Preenchimento do pedido
}
if(OrderType()==OP_SELL) //<-- Vá para a posição curta
{
if(UseClose)
{
if(CloseSellCondition) //<-- Feche o pedido e saia!
{
CloseOrder(OP_SELL); return(0);
}
}
TrailOrder(OrderType()); return(0); //<-- Preenchimento do pedido
}
}
}
retorno(0);
}
//+------------------------------------------------------------------+
....
Hi,
De qualquer forma, podemos saber que um pedido já está fechado?
A ilustração é assim:
Abro 2 pedidos pendentes.
abrir #182 limite de compra 0,17 EURUSD a 1.3005 sl: 1,2970 tp: 1,3013
aberto #183 limite de compra 0.17 EURUSD a 1.3000 sl: 1.2968 tp: 1.3011
então
ordem #182, compra 0,17 EURUSD é aberta a 1.3005
ter lucro #182 a 1.3013 (1.3013 / 1.3015)
quero eliminar o pedido nº 183 após o fechamento do pedido nº 182. O gatilho é se a ordem #182 for fechada, então a ordem #183 será apagada.
Abraço