entra em negócios quando você comenta
//if(OpenOrdersThisPair(Symbol())==0)entra quando
LotSize = 0.1;
etc. trabalhe seu caminho de volta até começar a entrar em negócios, uma vez lá você provavelmente saberá qual é o problema.hth
Sim, entra no lado comprido mesmo com o tamanho do lote "0".
Mudar o OpenOrderThisPair também não funciona.... Hmmm. É muito estranho...
Mudar o OpenOrderThisPair também não funciona.... Hmmm. É muito estranho...
DomGilberto:
Sim, ele entra no lado comprido mesmo com o tamanho do lote "0"...
Mudar o OpenOrderThisPair também não funciona.... Hmmm. É muito estranho. ...
Sim, ele entra no lado comprido mesmo com o tamanho do lote "0"...
Mudar o OpenOrderThisPair também não funciona.... Hmmm. É muito estranho. ...
Se este teste retornar não zero . .
if(OpenOrdersThisPair(Symbol()) == 0)
. o OrderSend() não é chamado, mas você ainda verifica se o SellTicketOrder é maior que 0 . .
Faça isso . . .
if (direction==1)//--Sell--// { { double ssl=sell_stop_price; double stp=sell_takeprofit_price; LotSize = (RiskedAmount/(pips_to_ssl/pips))/10; if(OpenOrdersThisPair(Symbol())==0) { int SellTicketOrder = OrderSend(Symbol(),OP_SELLSTOP,LotSize,sellPrice,3,ssl,stp,NULL,MagicNumber,0,Red); if(SellTicketOrder > 0) { Print("Order Placed #", SellTicketOrder); } else { Print("Order Send Failed, error # ", GetLastError()); } } }
Não - não parece querer enviar a ordem de venda...
Deve ser um erro na forma como escrevi o código relativo às declarações "IF" dentro do laço que envia a função OrderEntry para acionar uma ordem...
Deve ser um erro na forma como escrevi o código relativo às declarações "IF" dentro do laço que envia a função OrderEntry para acionar uma ordem...
DomGilberto:
Não - não parece querer enviar a ordem de venda...
Deve ser um erro na forma como escrevi o código relativo às declarações "IF" dentro do laço que envia a função OrderEntry para acionar uma ordem...
Então que erro você recebe agora ? se você não receber um e não receber "Order put # 12345" então o OrderSend() não está sendo chamado e você tem um problema com sua função OpenOrdersThisPair() . . poste seu código.
Não - não parece querer enviar a ordem de venda...
Deve ser um erro na forma como escrevi o código relativo às declarações "IF" dentro do laço que envia a função OrderEntry para acionar uma ordem...
Quando isto funciona, funciona bem há muito tempo (há duas horas que estou brincando com isto). O mais provável é que eu o dê corda a você e a uma certa pessoa, pois sei onde estou indo errado (onde chamo de função"CheckForMaTrade") com relação às declarações IF relativas aos parâmetros de média móvel, e como se elas forem "verdadeiras", enviará OrderEntry para OrderSend... O problema é que ainda estou aprendendo a escrever essa parte corretamente...
//+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(OpenOrdersThisPair(Symbol())>=1) { if(UseMoveToBreakEven)MoveToBreakEven(); if(UseTrailingStop)AdjustTrail(); if(Use_MA_Trail)MA_Trail(); } if(IsNewCandle())CheckForMaTradeLong(); if(IsNewCandle())CheckForMaTradeShort(); //---- return(0); }
DomGilberto:
Quando isto funciona, funciona bem há muito tempo (há duas horas que estou brincando com isto). O mais provável é que eu o dê corda a você e a uma certa pessoa, pois sei onde estou indo errado (onde chamo de função "CheckForMaTrade") com relação às declarações IF relativas aos parâmetros de média móvel, e como se elas forem "verdadeiras", enviará OrderEntry para OrderSend... O problema é que eu ainda estou aprendendo a escrever essa parte corretamente...
Quando isto funciona, funciona bem há muito tempo (há duas horas que estou brincando com isto). O mais provável é que eu o dê corda a você e a uma certa pessoa, pois sei onde estou indo errado (onde chamo de função "CheckForMaTrade") com relação às declarações IF relativas aos parâmetros de média móvel, e como se elas forem "verdadeiras", enviará OrderEntry para OrderSend... O problema é que eu ainda estou aprendendo a escrever essa parte corretamente...
RaptorUK:
Então que erro você recebe agora ? se você não receber um e não receber "Order placed # 12345" então o OrderSend() não está sendo chamado e você tem um problema com sua função OpenOrdersThisPair() . . poste seu código.
Então que erro você recebe agora ? se você não receber um e não receber "Order placed # 12345" então o OrderSend() não está sendo chamado e você tem um problema com sua função OpenOrdersThisPair() . . poste seu código.
Portanto ... . . que erro você recebe, etc . .
Oh, desculpe - não estou mais recebendo nenhum erro, o que é verdade. Estou recebendo apenas ordens de compra em andamento e nenhuma ordem de venda.
É em relação à minha linha anterior com relação ao cross overs de MA - ainda não entendi! Mas não quero dar corda a ninguém e bater em um cavalo morto enquanto as pessoas me dão a resposta (embora eu não entenda a resposta rs)! Abraço o RaptorUK por sua ajuda!
É em relação à minha linha anterior com relação ao cross overs de MA - ainda não entendi! Mas não quero dar corda a ninguém e bater em um cavalo morto enquanto as pessoas me dão a resposta (embora eu não entenda a resposta rs)! Abraço o RaptorUK por sua ajuda!
if(IsNewCandle())CheckForMaTradeLong(); if(IsNewCandle())CheckForMaTradeShort();Embora eu apoie operações de factoring em funções, não o faço para a maioria das variações de New Candle/New Bar porque essa função só pode ser chamada ONCE [por start()]
int start(){ static datetime time0; bool isNewCandle = time0 != Time[0]; time0 = Time[0]; // Once per start only. : if(isNewCandle)CheckForMaTradeLong(); if(isNewCandle)CheckForMaTradeShort();
Obrigado WHRoeder - boa dica!
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
Estou lutando para entender porque as posições longas funcionam e os negócios curtos não funcionam?
Tenho a sensação de que tem algo a ver com minha função de init para determinar o número de casas decimais com o corretor em mãos. (como isto parece ser o culpado por que as ordens fantasmas são expulsas logo no início de quando eu inicio o testador...)
Alguém tem alguma idéia por que o lado curto está me dizendo este erro?
Obrigado antecipadamente (o código está um pouco confuso no momento, pretendo limpá-lo, é claro!)