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
Outra pergunta
agora minha EA como esta
if(FastMA2 SlowMA1)
{
FecharPosições();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Point,Ask+(45*Point),",MAGIC,0,Blue);
retornar(0);
quero mudar desta maneira
1. 15minutus de tempo acontecem sinal de compra
2. se então 5minutos de tempo de duração da compra cruzada de MA já estiver em
FecharPosição. e obter nova posição
se então 5minutos de tempo MA já mudar de sinal de venda
esperar 5 minutos para mudar o sinal de compra ,
então FecharPosição. e obter nova posição
Por favor, me diga como escrever este programa.
Olá
Estou procurando ajuda para ter uma EA que estou usando em demonstração e também para aprender a codificar. Estou tentando descobrir como adicionar um comentário ao sistema para me mostrar qual dos 4 critérios de entrada foi usado para abrir a posição. por exemplo, se long2 foi usado, então mostrar sinal long2
qualquer ajuda seria ótima
aplausos
Beno
Olá
Estou procurando ajuda para ter um EA que estou usando em demonstração e também para aprender a codificar. Estou tentando descobrir como adicionar um comentário ao sistema para me mostrar qual dos 4 critérios de entrada foi usado para abrir a posição. por exemplo, se long2 foi usado, então mostrar sinal long2
qualquer ajuda seria ótima
aplausos
BenoDepois que sua condição for atendida e você usar o comando Orderend(), basta inserir uma declaração Comment(), Alert(), ou Print(). O que você quiser usar.
Algo como isto:
se ( long2 == verdadeiro)
{
Encomenda();
{
Impressão(" sinal longo2 tomado ");
}
}
Esperança que ajuda.
Obrigado Wolfe
Tive que rir, coloquei o que você sugeriu e funcionou mais ou menos, mas agora só tenho o comentário e nenhuma vaga em aberto. qualquer dica
bool Long = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<Fechar[shift];
bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>Close[shift] && MOMClose[shift];bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLLL && ma<Fechar[shift];
bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>Fechar[shift] && MOMFechar[shift];bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLLL && ma<Fechar[shift];
bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Fechar[shift] && MOMFechar[shift];bool Long4 = zscore>0.0 && ma<Fechar[shift];
bool Short4 = zscoreFechar[shift];
buysig = Long || Long2 || Long3 || Long4;
sellig = Short ||| Short2 ||| Short3 || Short4;
closebuy=sellig;
closesell=compra=sellig;
if (curprof>=AccountBalance()*ProfitExit/100.0) {
exit=true;
}
if (last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {
remorder=true;
}
}
CheckForOpen() {
int res,tr;
//---- condições de venda
co=CalculateCurrentOrders(Symbol());
if(sellig && lastsig!=-1) {
co=CalculateCurrentOrders(Symbol());
se (co==0) {
se ( Curta == verdadeiro)
se ( Curto2 == verdadeiro)
se ( Curta3 == verdadeiro)
res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1);
Print(" Short signal taken ");
Print(" Short2 signal taken ");
Print(" Short3 signal taken ");
Print(" Curto4 sinal tomada ");
}
lastsig=-1;
last=Time[0];
retornar;
}
//---- condições de compra
if(compra && dura!=1) {
co=CalculateCurrentOrders(Symbol());
se (co==0) {
se ( Long === verdadeiro)
se ( Long2 == verdadeiro)
se ( Long3 == verdadeiro)
se ( Long4 == verdadeiro)
res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1);
Print(" Long signal taken ");
Impressão(" Sinal longo2 tomado ");
Impressão(" Sinal longo3 tomado ");
Print(" sinal Long4 tomado ");
}
last=Time[0];
lastsig=1;
retorno;
}
}
Fixou-o Obrigado
Código de depuração
Como e onde você usaria um pouco de código como este. Eu tenho um erro de divisão Zero que não consigo encontrar como a correção.
DEBUGGING externo = verdadeiro
...
if(DEBUGGING && variableName == 0) Print("CodePoint 1 -- Esta variável é agora ", variableName);
... mais código
if(DEBUGGING && variableName == 0) Print("CodePoint 2 -- Esta variável é agora ", variableName);
... mais código
if(DEBUGGING && variableName == 0) Print("CodePoint 3 -- Esta variável é agora ", variableName);
...
você pode me ajudar? por que existem muitos erros no código?
isto é para calcular SMMA:
for(j=0;j<Bars;j++)
{
for(i=0,sum=0;i<ma_period;i++)
{
sum=sum+Close[j+i];
// tampão[j]=(soma-soma/ma_período+Fechar[j+i])/ma_período;
}
tampão[j]=(soma-soma/ma_período+Fechar[j])/ma_período;
}
isto é para calcular a LWMA
for(j=0;j<Bars;j++)
{
for(i=0,sum=0,sum1=0;i<ma_period;i++)
{
sum=sum+Close[j+i];
sum1=sum1+Close[j+i]*(j+i);
// tampão[j]=sum/ma_período;
}
tampão[j]=sum1/sum;
}
e como calcular o EMA?

pergunta sobre indicadores
Olá a todos.
Estou preso a uma questão de programação. Alguém sabe como usar 1 resultado indicador para mudar outra configuração? Por exemplo, se o stockasti diário fosse superior a 20, eu gostaria de uma média móvel de (x). Tentei fazer com que o código funcionasse abaixo, mas para saber se havia disponibilidade. Parece que não consigo fazer a troca ou, se for o caso, ordenar para trabalhar eithor.
duplo 4hrUP;
double daystoch1 = iStochastic(NULL, PERÍODO_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);
double daystoch20 = 20;
if (daystoch1 > daystoch20) four_hrUP = 5 ;
double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)
Olá a todos.
Estou preso a uma questão de programação. Alguém sabe como usar 1 resultado indicador para mudar outra configuração? Por exemplo, se o stockasti diário fosse superior a 20, eu gostaria de uma média móvel de (x). Tentei fazer com que o código funcionasse abaixo, mas para saber se havia disponibilidade. Parece que não consigo fazer a troca ou, se for o caso, ordenar para trabalhar eithor.
duplo 4hrUP;
double daystoch1 = iStochastic(NULL, PERÍODO_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);
double daystoch20 = 20;
if (daystoch1 > daystoch20) four_hrUP = 5 ;
duplo iMA( símbolo de string, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)Onde está a variável de seu MA?
Talvez isto possa ajudar
double ma4hr=iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift);
se o cálculo da estocagem estiver no mesmo loop, digamos "for(int shift=limit-1; shift>=0; shift--)", o código da estocagem deve ser
double daystoch1 = iStochastic(NULL, PERÍODO_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,shift+1);
CMIIW
Uma pequena ajuda com um indicador - Coder's Please Look
Estou testando uma plataforma de corretor MT4 que usa Pips Fractional Pips (pipetas) em suas cotações de preços: Por exemplo, no EURJPY eles cotam como 164.381 ao invés de 164.38 - Isto significa que o spread tem um decimal como 4.1 pips (ao invés de 4).
Alguém pode me dizer como MODIFICAR o seguinte código para que o Spread leia corretamente? Neste momento um spread de 4,1 pips seria lido como 41,0 no Indicador. Qualquer ajuda é apreciada.
Dan
//---- spread
Spread=NormalizeDouble((Ask-Bid)/Point,1);
ObjectSetText("Spread Monitor1", "Spread:", 10, "Arial", labelColor);
ObjectSetText("Spread Monitor2", "DoubleToStr(Spread,1),10, "Arial", clockColor);