orderend() ajuda na codificação...

 

Ei, pessoal,

Muito estranho, mas quando executo o seguinte código, ele não faz nada. GetLastError() retorna 130.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green)


Mas se pegar o mesmo código e remover a informação de parada e alvo, ele cospe as ordens muito bem.

   Print("running");
   OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order #2",16384,0,Green);


Estou usando um modelo especializado vazio e só tenho essas duas linhas de código na função iniciar.

Não tenho certeza do que está causando isto...


Obrigado!

 
mugged:

Ei, pessoal,

Muito estranho, mas quando eu executo o seguinte código, ele não faz nada. GetLastError() retorna 130.


Mas se pegar o mesmo código e remover a informação de parada e alvo, ele cospe as ordens muito bem.


Estou usando um modelo de especialista vazio e só tenho essas duas linhas de código na função iniciar.

Não tenho certeza do que está causando isto...


Obrigado!

Que tipo de corretor?

símbolo de ponto fracionário?

 
diostar:

Que tipo de corretor?

símbolo de ponto fracionário?


Estou usando uma mini conta IBFX.


Estou administrando na Eur/Usd

 
Também quando eu executo o código no testador de estratégia ele funciona muito bem... quando eu o executo na vida real eu tenho problemas.
 

Você tem seus cálculos de SL e TP errados

Se for uma compra:

SL = Licitação - Ponto StopLoss*

TP = Licitação + TakeProfit* Ponto

Se for um Sell:

SL = Perguntar + Ponto StopLoss*;

TP = Ask - TakeProfit* Point;

Além disso, com alguns corretores você tem que fazer o OrderSend() sem os níveis SL e TP, então faça OrderModify() e insira o TP e SL

 
mugged:

Estou usando uma mini conta IBFX.


Estou rodando na Eur/Usd

Ok.... Desculpe por não ter sido específico.

tente isto:

(1)no final do pedido: sl=tp=0. depois ordermodifique a sl=tp.

(2) eur/usd: quais os dígitos? 4 ou 5?

 
SDC:

Você tem seus cálculos de SL e TP errados

Se for uma compra:

SL = Licitação - Ponto StopLoss*

TP = Licitação + TakeProfit* Ponto

Se for um Sell:

SL = Perguntar + Ponto StopLoss*;

TP = Perguntar - TakeProfit* Ponto;


Ei amigo, eu tentei trocar o "Pergunte" que eu usava para definir meu SL e TP com "Licite" como você sugeriu, mas ainda não tive sorte.
 

OK, provavelmente é só porque você precisa fazer OrderSend() e depois OrderModify()

 
diostar:

Ok.... Desculpe por não ser específico.

tente isto:

(1)no final do pedido: sl=tp=0. depois ordermodifique a sl=tp.

(2) eur/usd: quais os dígitos? 4 ou 5?



1) Sim, este método funciona! Mas há alguma forma de contornar isto? Odeio a idéia do pior caso em que a ordem inicial entra mas a modificação não ocorre (a conexão morre, ocorre erro, etc. etc.)


2) Corretor de 5 dígitos

 
para um corretor de 5 dígitos você pode precisar multiplicar suas quantidades de SL e TP por dez, caso contrário você TP ou parar em 2,5 pips
 
SDC:
para um corretor de 5 dígitos você pode precisar multiplicar suas quantidades de SL e TP por dez, caso contrário você TP ou parar em 2,5 pips

Parece que o método de envio é bem sucedido e depois modificado. Alguma idéia de como eu posso conseguir a ordem e parar na mesma dose? Eu prefiro que eles entrem juntos em um ambiente de produção.