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 382

 
Link_x:

Mesmo assim não fecha os pedidos, não gosto disso.
Parecem ser todos os meus defeitos, que não sou capaz de encontrar, devido à inexperiência.

Além disso, usamos GetLastError(), nós estudamos qual é o problema.
 
Link_x:
Não consigo entender.
OK, eu já encontrei uma alternativa. :)

Deixe a MTS fazer negócios sem SL e TP, mas feche tudo se o lucro potencial for maior que X.
É possível fechar os pedidos desta forma?
Temos que acompanhar os pedidos desta forma?
O primeiro parâmetro da função OrderClose(.......) tem que ser o ticket da posição (tem que ser encontrado previamente usando OrderSelect() )
 
Descubra a variável sl, você tem um número inteiro e depois uma fração.
 
vadynik:

A função é fracionária ou não deveria ser?

Feliz Ano Novo! Tome uma bebida e não se preocupe!!!!!!!!!!!!!!!!!! :-)
 
Link_x:

Mesmo assim não fecha os pedidos, não gosto disso.
Parecem ser meus defeitos, que não sou capaz de encontrar como resultado da inexperiência.


guru, para onde você vai... ?... :-))) você está louco ...

há multidões rezando, não sabem para onde ir, e ele não consegue acertar os pés... :-)))

 
vadynik:

A função é fracionária ou não deveria ser?
void VirtualTral(int Dist_Tral,int Start_Tral,int Magic,int SL)

\\здесь у тебя SL - целая, не знаю, какое значение ты сюда посылаешь
{

double dist=Dist_Tral;
double start=Start_Tral;
double sl=SL;

//здесь уже дробная, но так как до этого была целая, значит....
 
if(OrdersTotal()<=0)
ObjectDelete("Stop"); 

int i, k=OrdersTotal();

  for (i=k-1; i>=0; i--) 
   {
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {  

             if (Bid-NormalizeDouble(OrderOpenPrice(),Digits)>NormalizeDouble(start*Point,Digits))
      
          {                                                                                                                        
                    if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits)))//здесь sl подразумевается как отступ от цены, тогда dist должна быть ценой
                {         
                                                 
                          sl=NormalizeDouble(Bid-dist*Point,Digits); //а здесь sl - это уже цена, вполне определенная
                          //Print(+dist); 
                          //Print(+sl); 
                          ObjectCreate("Stop",OBJ_HLINE,0,D'2013.02.20 12:30',sl); // и здесь, это определенное значение цены
                                                                        
                          ObjectSet("Stop",OBJPROP_STYLE,1);                         
                          ObjectMove("Stop",0,D'2013.02.20 12:30',sl);            
   
 
vadynik:

Por que a distância deve ser o preço? Porque eu conto a diferença entre oferta e oferta e comparo este delta com a distância e se é mais necessário puxar a parada para cima, eu não entendo exatamente onde a falha ocorreu?



Vamos fazer isso em números

if((NormalizeDouble(Bid-sl*Point,Digits))>(NormalizeDouble(dist*Point,Digits))>(NormalizeDouble(dist*Point,Digits))

Suponha que a Licitação seja 1,3333, sl é 100, dist é 20, então

1,3333-100 * 0,0001=1,3233 que é mais de 20 * 0,0001 = 0,02 sempre

 
gyfto:

Eu tenho uma pergunta lamer sobre a usabilidade. A carta pode ser rolada para a esquerda e para a direita, assim como espremida e esticada. Mas como posso subir e descer?

Já descobri, com o gráfico pode ser arrastado para cima e para baixo com o mouse.

 
Integer:
r772ra

Obrigado por sua ajuda, caros comerciantes - programadores. :)
 

Favor informar como calcular as porcentagens na MQL4

por exemplo x=10+3% como escrevê-lo de forma programática?

Não consigo encontrá-lo no livro de referência.