Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 10

 
Chiripaha:

Não, não é mais fácil. Porque se houvesse uma bandeira negativa (ou uma variável global), a verificação ainda precisaria ser executada. Tanto a bandeira quanto a variável global só funcionarão no caso positivo. E algumas funções ainda são necessárias no início (embora, aqui, seja diferente).

Seja como for, a partida ainda precisa ser executada de qualquer forma: ou através da repetição do "init", que é igualmente irritante, ou através da repetição das funções necessárias.


Você está fazendo algo tão complicado que é quase impossível de compreender...

Diga-me, qual é a diferença no retorno de um valor por uma função, ou uma variável global que muda na função, cujo resultado deve ser retornado? Neste caso, "inite".

 

Colegas, qual é o erro?

//========================================================================================================//     
                                             //---- SELL ----//
//========================================================================================================//

if(OrdS<=OrederSell) 
  { //----- start

if(.........)
  
{ticketSell=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,0,magick,0,Blue);OrdS++; Этот ордер открывается
Sleep(3000); RefreshRates();
 ticketSell2=OrderSend(Symbol(),OP_SELL,0.2,Bid-20*Point,3,0,0,0,magick,0,Blue);OrdS++; Ошибка 138 или OP_SELLLIMIT - 130
 Sleep(3000); RefreshRates();
 ticketSell3=OrderSend(Symbol(),OP_SELL,0.4,Bid-40*Point,3,0,0,0,magick,0,Blue);OrdS++; Ошибка 138 или OP_SELLLIMIT - 130
}
 
  } //-----end
          
//========================================================================================================//  
                                             //---- BUY ----//
//========================================================================================================//  

if(OrdB<=OrederBuy)
  { //-----start

if(.........)

{ticketBuy=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,0,magick,0,Red);OrdB++; Этот ордер открывается
Sleep(3000); RefreshRates();
 ticketBuy2=OrderSend(Symbol(),OP_BUY,0.2,Ask+20*Point,3,0,0,0,magick,0,Red);OrdB++; Ошибка 138 или OP_BUYLIMIT - 130
 Sleep(3000); RefreshRates();
 ticketBuy3=OrderSend(Symbol(),OP_BUY,0.4,Ask+40*Point,3,0,0,0,magick,0,Red);OrdB++; Ошибка 138 или OP_BUYLIMIT - 130
}

Já verifiquei no fórum a existência de erro 130/138, mas ainda não entendo porque pedidos adicionais 2 e 3 não abrem. Somente os principais.

 
NORMALIZAÇÃO
 
Fox_RM:

Colegas, qual é o erro?

Já verifiquei no fórum a existência de erro 130/138, mas ainda não entendo porque pedidos adicionais 2 e 3 não abrem. Somente os principais.

Colega, você quer abrir ordens de mercado não a preço de mercado... :)
E não custa entender a diferença entre as ordens de limite (SELLLIMIT e BUYLIMIT) e as ordens de parada (SELLSTOP e BUYSTOP).

 
TarasBY:
Colega, você quer abrir ordens de mercado não ao preço de mercado... :)

E de fato
 
Boa tarde. Há dois pontos com coordenadas (x1,y1) e (x2,y2). Como posso usar esses dois pontos para construir uma função logarítmica com uma base logarítmica diferente da natural? Parece que eu preciso usar a função inversa(MathPow), mas não consigo descobrir como torná-la diagonal. Se alguém já se deparou com isso, por favor, avise. Obrigado de antemão.
 
hoz:

Portanto, não há fim para o ciclo, por isso é que ele está empatado.

Qual é a maneira correta de acabar com isso?
 
Chiripaha:

Não, não é mais fácil. Porque se houvesse uma bandeira negativa (ou uma variável global), a verificação ainda precisaria ser executada.

Não é tudo o mesmo.

Chiripaha:

Tanto a bandeira quanto a global só serão acionadas no caso positivo. E algumas funções ainda são necessárias no Start (embora, aqui, seja diferente).

Se houver uma ruptura na conexão ou algo parecido, a bandeira assumirá um significado diferente. Você tem que decidir como criar as condições certas para isso.
 
Krokus:

Qual é a maneira correta de acabar com isso?
É mais ou menos assim:
int i, countedBars = IndicatorCounted();
        
    for(i = Bars - countedBars;i > 0;i--)
    {
      pointOfMaFirst = iMA(Symbol(),maTF,maPeriod,maShiftByPrice,maMethod,maPrice,shiftBarsBack1);
      pointOfMaLast = iMA(Symbol(),0,maPeriod,maShiftByPrice,maMethod,maPrice,shiftBarsBack2);    
    }
 
TarasBY:

Colega, você quer abrir ordens de mercado não ao preço de mercado... :)
Também ajudaria a entender a diferença entre as ordens de limite (SELLLIMIT e BUYLIMIT) e as ordens de parada (SELLSTOP e BUYSTOP).


Posso lhe perguntar o que você quer dizer com não a preço de mercado? Com SELLLIMIT e BUYLIMIT, tudo está correto.