Como codificar? - página 74

 

Você quer dizer:

if ( ( CloseSell1_1 CloseSell2_2 ) || ( CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

[/PHP]or do you mean:

[PHP]if ( ( CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2 ) ) Order = SIGNAL_CLOSESELL;

 

Obrigado.

Agora que olho para isso, era óbvio. Isso fez o truque. O backtest inicial não foi tão bom assim. Hora de fazer um ajuste.

 
Big Be:
Preciso saber como mudar a parada para HALF de minha ordem aberta. Meu entendimento é que isto significa abrir duas ordens, por exemplo, .2 lotes e .2 lotes.

Minha EA baseia o número de lotes em um cálculo de gerenciamento de dinheiro.

Após a parada de uma ordem ser alterada (com base no nível de preço alcançado), eu deixaria meu código de saída fechar ambas as ordens, a menos que suas paradas (agora diferentes) sejam atingidas.

A outra ordem mantém sua parada original ou possivelmente a move para o Break Even.

Se a quantidade inicial de lotes (da função MM) for estranha, em vez de arredondar para um número ímpar de lotes ou décimo lote, eu gostaria de dividi-los de forma desigual entre as duas ordens.

Creio que isto envolve números mágicos, e algumas linhas de código aqui e ali. Talvez haja um EA com tudo isso que eu poderia copiar.

Obrigado por qualquer ajuda.

Grande Seja

Olá; você me perguntou explicitamente sobre isso em outro lugar, mas houve algumas respostas, e não sei quais partes de seus problemas podem permanecer. Precisará de uma rodada onde você perguntará novamente....

 

Oi Ralph,

ralph.ronnquist:
Olá; você me perguntou explicitamente sobre isso em outro lugar, mas houve algumas respostas, e não sei quais partes de seus problemas podem permanecer. Precisará de uma rodada onde você perguntará novamente....

Bem, nenhuma das respostas realmente respondeu a nenhuma das minhas perguntas - algumas eram sobre minhas respostas às perguntas de outros.

Portanto, todas as partes permanecem. (Veja no post anterior a citação da edição que coloquei neste tópico).

Obrigado,

Grande Seja

 

Problema com o estabelecimento da Ordem Limitada

Ei, pessoal e garotas,

Estou tentando configurar o código em minha EA para entrar em uma negociação a um nível de preço específico (uma ordem de limite). Este é o código para a ordem de limite:

ticket=OrderSend(Symbol(),OP_BUYLIMIT,lots,Ask+10*Point,3,BuyStopLoss,0, "xx Buy",16384,0,Red);

lotes & BuyStopLoss são valores pré-determinados calculados, e funcionam com uma função regular de mercado "OP_BUY" quando eu o mudo para isso. Ask+10*Point é apenas um valor arbitrário que eu obtive acima do preço atual, na verdade eu normalmente uso BuyEntry que também é pré-determinado.

O erro que eu recebo quando tento executar o código no Testador de Estratégia é:

"2008.02.24 16:00:082004.06.17 15:15 xxEA EURUSD,M15: OrderSend error 130" (que é um erro relacionado a explosões)

Alguma idéia sobre o que está causando este erro? Acho que deve haver um problema com a forma como estou configurando a ordem limite, ou não pode executar ordens limite no testador de estratégia (?) porque parece funcionar bem com uma ordem de mercado. Obrigado por qualquer ajuda.

 

Consultor Especialista Construtor?

Lonestar:
Eu sou relativamente novo na Metatrader, mas não nas negociações, e criei alguns EAs usando o Expert Adviser Builder. A maioria funciona bem, mas estou tendo problemas quando uso várias saídas. Fechar (comprar) lógicas e fechar (vender) lógicas com a função OR. Múltiplas com AND funcionam bem, mas não reconhecem nenhuma que eu crie com OR. Abaixo está o código de saída.

//+------------------------------------------------------------------+

//| Início do Sinal (Sair de Venda) |

//+------------------------------------------------------------------+

if (CloseSell1_1 CloseSell2_2 || CloseSell3_1 > CloseSell3_2) Ordem = SINAL_CLOSESELL;

A parte em negrito é o sinal que ele está ignorando. Qualquer idéia. Esta é a única coisa que me impede de voltar aos testes corretamente. Se alguém pode ajudar e ele faz o backtest, você pode tê-lo. Apenas filtrando manualmente os ofícios que devem ser fechados, parece promissor.

Obrigado.

O que é Expert Advisor Builder?

 
nondisclosure007:
O que é Expert Advisor Builder?

Algo como Gordago ou este

 

Tamanho de lote variável.

Hi,

Posso obter o código para lotes de tamanho variável para um EA ?

Por exemplo , para primeiro pedido de venda 0,2, segundo pedido de venda 0,1 .

Cumprimentos,

SIDDESH

 
Linuxser:
Algo como Gordago ou este

Obrigado. Gosto de Gordago pelo teste de estratégia (sem ter que realmente escrever um código). Preciso mexer nos modelos que ele usa para meus propósitos de EA. Eu me encontro fazendo algumas edições sobre o que ele cria para atender aos meus próprios estilos de codificação. Mas no final das contas, estou impressionado.

Pensei que o Gordago era um produto comercial? Não vejo quanto custa em qualquer lugar.

 

ERR_COMMON_ERROR #2 ao abrir o comércio

Olá a todos,

Depois da maravilhosa ajuda no outro dia com os problemas da NewBar, eu não aprendi muito e progredi imensamente com meu aprendizado EA, estou programando. (Principalmente como um exercício de aprendizagem e um sistema muito básico que quero testar (sem dúvida não será lucrativo, mas é um bom exercício de aprendizagem!)

Tenho escrito algum roteiro, cada nova barra, fecha todas as negociações anteriores no par atual, depois pega o valor ATR de 20 períodos e entra em uma parada de compra e uma parada de venda para entrar no mercado quando se move a metade do caminho para o valor ATR do mercado aberto. O Take Profit é então fixado no valor ATR (meu cálculo é que se ele foi pela metade do caminho até lá, então pode ser provável que a partir do movimento médio do dia, ele continuará a atingir o Take Profit. Provavelmente está totalmente errado aqui, mas quer programá-lo de qualquer forma para tentar valores - em conta demo em vez de Strategy Tester)

Eu programei tudo e eventualmente trabalhei para remover os dígitos extras após a casa decimal usando NormalizeDouble, mas agora quando a EA tenta abrir uma parada de compra no início da barra eu tenho ERR_COMMON_ERROR ou Erro #2.

Isto é REALMENTE inútil. Verifiquei os valores que está definindo para Open, Take Profit e Stop Loss e todos estes parecem razoáveis e não consigo descobrir o que mais poderia ser. Tem sido minha frustração pela noite, pois não há mais feedback da GetLastError do que este! Por favor, ajude-me.

ATR_Value = iATR(NULL,0,ATR_Period,0); //Get current ATR Value from chart

if (ATR_Value < (ATR_Minimum*Point)) //Check current ATR_Value to ensure it is no less than the ATR_Minimum set

{

Print("Too little range for trading. ATR_Minimum ",(ATR_Minimum*Point)," ATR_Value ",ATR_Value);

return(0);

}

double buyopen,nbuyopen,buysl,nbuysl,buytp,nbuytp,sellopen,nsellopen,sellsl,nsellsl,selltp,nselltp;

buyopen=((iOpen(NULL,0,0))+(ATR_Value*Open_Multiplier)+Open_Offset);

nbuyopen=NormalizeDouble(buyopen,Digits);

buysl=((iOpen(NULL,0,0))+(ATR_Value*SL_Multiplier)+SL_Offset);

nbuysl=NormalizeDouble(buysl,Digits);

buytp=((iOpen(NULL,0,0))+(ATR_Value*TP_Multiplier)+TP_Offset);

nbuytp=NormalizeDouble(buytp,Digits);

sellopen=((iOpen(NULL,0,0))-(ATR_Value*Open_Multiplier)-Open_Offset);

nsellopen=NormalizeDouble(sellopen,Digits);

sellsl=((iOpen(NULL,0,0))-(ATR_Value*SL_Multiplier)-SL_Offset);

nsellsl=NormalizeDouble(sellsl,Digits);

selltp=((iOpen(NULL,0,0))-(ATR_Value*TP_Multiplier)-TP_Offset);

nselltp=NormalizeDouble(sellsl,Digits);

Print("Open:",nbuyopen," TP:",nbuytp," SL:",nbuysl);

int ticketbuy;

ticketbuy=OrderSend(Symbol(),OP_BUYSTOP,Lots,nbuyopen,Max_Slippage,nbuysl,nbuytp,"Buy Order",12345,(Bar_Period-Bar_Offset),Green);

if(ticketbuy<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

int ticketsell;

ticketsell=OrderSend(Symbol(),OP_SELLSTOP,Lots,nsellopen,Max_Slippage,nsellsl,nselltp,"Buy Order",54321,(Bar_Period-Bar_Offset),Red);

if(ticketsell<0)

{

Print("Buy Order failed with error #",GetLastError());

return(0);

}

Muito obrigado por qualquer ajuda, eu também anexei o mt4 se alguém não se importar de dar uma olhada. Ele também contém partes de scripts de outras pessoas que, lamento não ter creditado, mas todos eles foram postados neste site. (Obviamente, se eu alguma vez liberar a EA, estou postando isto apenas para tentar resolver este problema, pois tem sido a minha frustração à noite).

Howard

Arquivos anexados:
atr.mq4  6 kb