Questões básicas ... - página 9

 
Zen_Leow:
matrixebiz, você já considerou a possibilidade de uma abertura e fechamento comercial na mesma vela antes que a vela tenha fechado? você provavelmente deveria verificar também a lista do histórico.

Eu sempre portei esta pequena função que escrevi para todos os meus EAs, talvez você possa achá-la útil também.

bool DecideToOpenTrade()

{

int total = OrdersTotal();

if (total > 0)

{

for(int cnt=0;cnt<total;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

return (false);

}

}

}

}

// in case trades has already opened and closed within the candle

int histotal = OrdersHistoryTotal();

if (histotal > 0)

{

for(cnt=0;cnt<histotal;cnt++)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber() == EA_MAGIC_NUM)

{

if (Time[0] <= OrderOpenTime()) // don't open a new position if we're still on the same candle

{

return (false);

}

}

}

}

}

return (true);

}

int start()

{

// some time check codes first.. blah blah

// ...

// ...

// ...

// check signals

if (Should_Buy())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

if (Should_Sell())

{

if (DecideToOpenTrade())

{

//... trade opening codes here

}

}

}

Nota: esta função assume que você definiu um valor único para EA_MAGIC_NUM. Dessa forma, o cheque não olhará para os negócios abertos por outros EAs.

Should_Buy() e Should_Sell() são funções que eu crio em todos os meus EAs para determinar se um sinal de compra ou venda ocorreu.

Espero que isto ajude. PM-me se você precisar de mais esclarecimentos.

cumprimentos,

Zen

Obrigado Zen Acho que isto me fará bem provavelmente só precisa fazer algumas mudanças porque minha EA é uma EA de múltiplas moedas, por isso não pude verificar uma moeda específica sem saber com qual par de moedas a EA negociou, daí a razão pela qual tenho que mudar o código para procurar um OrderComment() específico em vez do que você tem OrderSymbol(). Eu estava usando este código abaixo para verificar se as negociações já existiam atualmente, mas estava tendo problemas para verificar se as negociações já estavam fechadas na mesma barra.

for(int i=totalordens-1;i>=0;i--)

{

OrderSelect(i, SELECT_BY_POS);

if (OrderComment() == EA_Name + MagicNumber) GoOrders = false; }

if (GoOrders){ordens();}

 

1 comércio por sinal

Olá a qualquer um que possa ajudar

sou muito novo em codificação e estou tendo um probelm com uma ea em que estou trabalhando gostaria muito que esta ea colocasse uma profissão e depois esperasse por outro sinal antes de entrar em outra profissão

agora mesmo coloca um comércio e assim que esse comércio fecha ele entra novamente em outro comércio sem esperar pelo próximo sinal agora eu gostaria de saber se alguém sabe o código que eu uso para esperar pelo próximo sinal antes de entrar novamente

obrigado por qualquer ajuda prévia

 

Por favor, ajude-me a limpar este erro

Estou trabalhando neste especialista recentemente, mas ainda não consigo esclarecer este erro, então espero realmente que alguém aqui possa me ajudar a fazer este especialista fechar uma ordem quando a condição estiver em direção oposta... Por favor...

abaixo estão o erro;

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: bilhete 197 desconhecido para a função OrderClose

2009.01.07 08:46:58 2008.05.28 04:20 USDJPY,H1: OrderClose error 4108

obrigado antecipadamente.

int start()

{

if( iMA(iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0) <iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_SELL, Lots,Bid, 0,Bid+StopLoss* Point,Bid- TakeProfit* Point,", SystemMagicNumbe r,0,Red);

retorno(0);

}

if( iMA(iMA(NULL,0,5, 0,MODE_EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0)

)

{

OrderSend(Symbol( ),OP_BUY, Lots,Ask, 0,Ask-StopLoss* Point,Ask+ TakeProfit* Point,", SystemMagicNumbe r,0,Blue) ;

retorno(0);

}

se (OrderType() ==OP_SELL)

{

if (iMA(NULL,0, 5,0,MODE_ EMA, PRICE_CLOSE, 0)>iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;

retorno(0);

}

}

se (OrderType() ==OP_BUY)

{

if (iMA(NULL,0, 5,0,MODE_ EMA, PRICE_CLOSE, 0)<iMA(NULL,0,30, 0,MODE_EMA, PRICE_CLOSE, 0))

{

OrderClose(SystemMa gicNumber, Lots,OrderCloseP rice(),0) ;

retorno(0);

}

}

 

Como criar um objeto de linha finita

É possível criar um objeto de linha de tendência que é infinito. Mas como posso traçar uma linha finita de um ponto a outro? Obrigado por qualquer resposta.

 
MetaMaster:
É possível criar um objeto de linha de tendência que é infinito. Mas como posso traçar uma linha finita de um ponto a outro? Obrigado por qualquer resposta.

definir OBJPROP_RAY como falso

 

A EA envia ordens a cada sinal após o sinal. AJUDA.

neste momento estou estudando para fazer a EA.

como fazer a EA entender, que eu quero apenas enviar um pedido a cada sinal que aparecer.

a lógica é

antes de dar sinal, ele permanece calmo,

imediatamente após o sinal aparecer, ele envia a ordem, uma vez.

e espera por outro sinal.

o problema é

este Ea deve ser capaz de enviar ordem não importa se a ordem anterior foi liquidada ou não.

Portanto, não posso codificá-lo para enviar pedido somente após o fechamento do pedido anterior.

Obrigado.

 

ajuda para ea base em indicador

--------------------------------------------------------------------------------

queridos todos

eu tenho indicador(3ma cruz com sinal)preciso mudá-lo para ea , posso copiar ind init() para expert init() e ind start() para expert start() e depois colocar função vender e comprar quando a seta me der sinal?

eu o faço, mas funciona com a seta

Arquivos anexados:
 

ajuda com a questão da codificação

Hi

Estou tentando escrever uma EA muito simples que abre uma série de ordens pendentes em intervalos fixos. Em uso, ela abre as ordens, mas depois continua abrindo-as infinitamente. Como posso codificá-lo para que as ordens sejam abertas apenas uma vez, e também se uma ordem se torna viva e atinge TP ou SL, então ela é substituída por uma nova ordem pendente da lista original?

Muito obrigado por qualquer ajuda oferecida,

Dan

 

Um comércio por número mágico?

Estou escrevendo um EA que abrirá automaticamente uma negociação com base em decisões comerciais manuais. Por exemplo, vou olhar o gráfico e determinar o preço em que quero que a ordem seja aberta, qual é a parada e a tomada, etc... Em seguida, definirei a EA e quando o preço for alcançado, ela abrirá o comércio.

Preciso fazer com que a EA abra apenas uma negociação por número mágico. Eu definirei manualmente o número mágico e cada número será único. Desta forma, se a transação for aberta e depois interrompida, a EA não tentará abrir outra transação se o preço da transação for alcançado novamente.

Alguma idéia sobre o melhor caminho a ser percorrido? Alguns exemplos de código também seriam úteis

 

...

jerzzhere:
Estou escrevendo um EA que abrirá automaticamente uma negociação com base em decisões comerciais manuais. Por exemplo, vou olhar o gráfico e determinar a que preço eu quero que a ordem seja aberta, qual é a parada e a tomada, etc... Em seguida, definirei a EA e quando o preço for alcançado, ela abrirá o comércio.

Preciso fazer com que a EA abra apenas um comércio por número mágico. Vou definir manualmente o número mágico e cada número será único. Desta forma, se o comércio for aberto e depois parado, a EA não tentará abrir outro comércio se o preço do comércio for alcançado novamente.

Alguma idéia sobre o melhor caminho a ser percorrido? Alguns exemplos de código também seriam úteis

Eu tinha um rastro neste fórum que tinha uma solução de número mágico...infelizmente davidke & walander odiava minhas idéias inovadoras e fediava em todo o quadro...conseqüentemente meu rastro foi apagado...