[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 804

 
Maniac:


Aqui está o código do Expert Advisor. É necessário:

1) ele abriu não um, mas três negócios ao mesmo tempo com paradas de 25 e aquisições de 15, 35, 50

2) depois que a segunda ordem é fechada no take (35), a última posição (com take 50) é levada ao ponto de equilíbrio

Você usa as funções de Igor Kim... Entre todas as diversas funções prontas para uso
que ele colocou à disposição de todos, você não encontrou maneiras de resolver seu "problema"?
Acredite que eles estão lá e até o suficiente deles...
É um bom lugar para começar a aprender...
Além disso - leia esta seção do tutorial do IC - descreve bem como estruturar seu código e dividi-lo em blocos de código estruturados logicamente,
cada um dos quais desempenha sua função como parte do Expert Advisor.
Você tem tudo em uma pilha... :)
IMHO, é claro... :)
 
É uma maneira infernal de fazer uma garota dançar... <:-О ...
Há uma posição de compra com bilhete 88. Há uma ordem pendente SellStop com ticket 89
Quando a ordem pendente SellStop é convertida em ordem de mercado, o ticket de mercado SellStop também se torna 89,
mas BUY POSITION TICKET (88) VENDERÁ FICHEIRO!!! Como isso pode ser - não está fechado e está no mercado!! ??????????????
Isto é, ao verificar:
if (OrderSelect(CurTicB,SELECT_BY_TICKET,MODE_HISTORY)) // CurTicB равен тикету позы, т.е. 88
   {
      if (OrderType()==OP_BUY)
          {
              Print("Поза Buy с тикетом ",CurTicB," отошла, блин в мир иной, сволочь!!!",", и типчик у неё = ",OrderType());
              SaveCurB = false;   
          }
      else if (OrderType()==OP_BUYSTOP) Print("Поза Buy с тикетом ",CurTicB," отошла, блин в мир иной, сволочь!!!",", а типчик у неё = ",OrderType());
   }

... diz em meu diário:

2010.08.15 09:38:52 2009.01.09 19:36 Sergitas_v1.02 EURUSD,M5: A posição de compra com o bilhete 88 foi sangrentamente para o próximo mundo, o bastardo!!!, e seu tipo = 0

E ela está se sentindo ótima no mercado ao mesmo tempo... !!!!!!!!!!! ?????????
Alguém pode me apontar na direção de algo para que eu possa ver para onde vai... ...e como lidar com isso... Este é o terceiro dia que ela me irrita...

( É por isso que minhas expressões no diário do testador são mais fortes do que as que corrigi aqui... :)) )

Obrigado...

 
artmedia70:
É uma maneira infernal de fazer uma garota dançar... <:-О ...
Há uma posição de compra com bilhete 88. Há um pedido pendente de SellStop com bilhete 89
Ao transformar um SellStop pendente em um SellStop de mercado, o bilhete do SellStop de mercado também passa a ser 89,
MAS O BILHETE DE POSIÇÃO DE COMPRA (88) ENTRA PARA A HISTÓRIA! Como isso pode ser - porque não está fechado e está no mercado !!! ??????????????
Isto é, ao verificar:

... diz em meu diário:

2010.08.15 09:38:52 2009.01.09 19:36 Sergitas_v1.02 EURUSD,M5: A pose de compra com bilhete 88 foi para o outro mundo, bastardo!!!, e seu tipo = 0

E ela está se sentindo bem no mercado nesse meio tempo... !!!!!!!!!!! ?????????
Alguém pode me apontar na direção de algo para que eu possa ver para onde vai... ...e como lidar com isso... Este é o terceiro dia que ela me irrita...

( É por isso que minhas expressões no diário do testador serão mais fortes do que as que eu corrigi aqui... :)) )

Obrigado...


O testador é impecável!

Como todos os códigos e usabilidade MetaQuotes Software Corp ...

Caso contrário, é uma proibição.

Procure a tortuosidade em MicroProgramas e você mesmo!

;)

 

Estou começando a acreditar nos insetos...

A posição Buy fechou de repente no nível Take Profit da posição Sell já fechada:


Não há parada na posição Comprar, e bam! e fechado e assim
interessante - bem no nível da tomada da posição já fechada Vender ...

Parece que... há um morto-vivo no meu apartamento... ou eu preciso dormir mais... :)

Alguém já teve uma confusão assim?

Eu não sei...

 
FreeLance:

O testador é impecável!

Assim como todo o código e a usabilidade da MetaQuotes Software Corp ...

Caso contrário, você será banido.

Procure a tortuosidade em MicroProgramas e você mesmo!

;)

Uma resposta muito esclarecedora... arco baixo... Eu me curvo e com as mãos tortas deixo cair as panelas das prateleiras. Sem lascas? ;)
 
artmedia70:
Uma resposta muito esclarecedora... curvar-se... Eu me curvo, e com minhas mãos tortas deixo cair as panelas das prateleiras. Você recebeu alguma lasca? ;)

não, é claro - o orvalho de Deus! $)

e você está apenas começando...

;)

 
artmedia70:
É uma maneira infernal de fazer uma garota dançar... <:-О ...
Há uma posição de compra com bilhete 88. Há um pedido pendente de SellStop com bilhete 89
Ao transformar um SellStop pendente em um SellStop de mercado, o bilhete do SellStop de mercado também passa a ser 89,
MAS O BILHETE DE POSIÇÃO DE COMPRA (88) ENTRA PARA A HISTÓRIA! Como isso pode ser - porque não está fechado e está no mercado !!! ??????????????
Isto é, ao verificar:

... diz em meu diário:

2010.08.15 09:38:52 2009.01.09 19:36 Sergitas_v1.02 EURUSD,M5: A pose de compra com bilhete 88 foi para o outro mundo, bastardo!!!, e seu tipo = 0

E está fazendo um trabalho muito bom no mercado naquela época... !!!!!!!!!!! ?????????
Alguém pode me espetar em alguma coisa para que eu possa ver onde está o problema. ...e como lidar com isso... Este é o terceiro dia que ela me irrita...

( É por isso que minhas expressões no diário do testador serão mais fortes do que as que eu corrigi aqui... :)) )

Obrigado...

Sugiro que você leia atentamente a descrição da função OrderSelect().

O pool de parâmetros é ignorado se a ordem for selecionada utilizando o número do bilhete

 
artmedia70:

Estou começando a acreditar nos insetos...

A posição Buy fechou do nada no nível Take Profit de uma posição Sell já fechada:


Não há nenhuma parada na posição Comprar, mas fechou...! e fechado e assim
interessante - bem no nível de tomar a posição já fechada Vender ...

Parece que... há um morto-vivo no meu apartamento... ou eu preciso dormir mais... :)

Quem já teve tanta confusão?

Eu não sei...

É difícil dizer o que você tem lá. Não vejo que "A posição Comprar de repente fechou a nível de TakeProfit de uma posição de Venda já fechada". Essa Venda, sob a qual a seta é desenhada, não parece conter nenhum traço.

Você não usa OrderCloseBy() em seu código?

 
double verhB=iBand(NULL,0,BandsPeriod,Bands_shift,Desvios,PRICE_CLOSE,1,0);//calcule o indicador de linha superior
double seredina=iBand(NULL,0,BandsPeriod,Bands_shift,Desvios,PRICE_CLOSE,0,0);//calcule o indicador de linha superior///
double nizB=iBands(NULL,0,BandsPeriod,Bands_shift,Desvios,PRICE_CLOSE,2,0);//calcule o indicador de resultado final //
//---------------------------------------------------------------------------------------------------------------//
double slb,tpb,sls,tps; // Variáveis de entrada para Stop Loss e Take Profit////
//Função de verificação da presença de pedidos // // //
// //
slb=NormalizeDouble(Ask - (Loss*Point),Digits) ; //calcule a parada para posições de compra //
tpb=NormalizarDuplo(Perguntar + (Lucro*Ponto),Dígitos); //calcular lucro para posições de compra////////////
sls=NormalizarDuplo(Licitação + (Perda*Ponto),Dígitos) ; //calcular parada para posições de venda//
tps=NormalizeDouble(Bid - (Lucro*Ponto),Dígitos);
if(OrdensTotal()==0)
{
if(((verhB-nizB)<=Delta)&&(Ask===seredina))

tick =OrderSend(Symbol(),4,Lots,NormalizeDouble(Ask+Raznica*Point,Digits),Slip,slb,tpb,NULL,MagicNumber,0,CLR_NONE); //Buy entry///
if(tick<0) Print("Error # - ",GetLastError()));

tick2=OrderSend(Symbol(),5,Lots,NormalizeDouble(Bid-Raznica*Point,Digits),Slip,sls,tps,NULL,MagicNumber,0,CLR_NONE); //Input sat //
if(tick2<0) Print("Error # - ",GetLastError()); //write error//
} // // // //
retorno(0);}



Diga-me qual é o erro, ele só abre.

O significado do Conselheiro Especialista é que colocaria dois pingentes a uma certa distância do limite superior e inferior do Bollinger

 

e qual é o erro?

pode ser porque o valor de Raznica está próximo do valor de stoplevel

e/ou a diferença Raznica - Lucro (Raznica - Perda) também está próxima do valor do stoplevel...

além disso, se normalizar, normalizar tudo... e calcular corretamente os níveis de parada

slb=NormalizeDouble(Bid - (Perda*Ponto),Dígitos) ; //calcule a parada para posições de compra//
sls=NormalizeDouble(Ask + (Perda*Ponto),Dígitos) ; //calcule a parada para posições de venda//

além dos valores de parada obtidos devem ser verificados por estarem fora da zona de stoplevale/freezelevale