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 465

 

Olá. Comecei a estudar a MQL4 há algum tempo e me deparei com o seguinte mal-entendido.

Como você pode ver no exemplo abaixo, quando a vela mais alta da barra atinge 1,3058, o pedido deve ser fechado. O pedido é fechado de acordo com as condições, mas o preço de fechamento não é 1,3058(pode ser 1-3 pips mais alto). Então, como fechamos corretamente? Fechaem 1.3058?

if(High[0] >= 1.3058)

OrderClose( OrderTicket(), OrderLots(),  NormalizeDouble(Ask,Digits), 0, Red) ;
 
Mr.Dmitry:

Olá. Recentemente comecei a estudar a MQL4 e me deparei com o seguinte mal-entendido.

Como você pode ver no exemplo abaixo, quando a vela mais alta da barra atinge 1,3058, o pedido deve ser fechado. O pedido é fechado de acordo com as condições, mas o preço de fechamento não é 1,3058(pode ser 1-3 pips mais alto). Então, como fechar corretamente? Fechaem 1.3058?

Você não pode. O MT tem um deslize, que está sempre a favor do corretor.
 
Mr.Dmitry:

Olá. Recentemente comecei a estudar a MQL4 e me deparei com o seguinte mal-entendido.

Como você pode ver no exemplo abaixo, quando a vela mais alta da barra atinge 1,3058, o pedido deve ser fechado. O pedido é fechado de acordo com as condições, mas o preço de fechamento não é 1,3058(pode ser 1-3 pips mais alto). Então, como fechar corretamente? Vocêquer que seu pedido seja fechado em 1.3058?

Bem, imagine que no último tick o preço era 1.3057, e no tick atual é 1.3059.

Não diga mais tarde que o pedido não fechou. Você não está fazendo a verificação corretamente. Você tem que fazê-lo em "mais ou igual" ou "menos ou igual" e nada mais.

 
artmedia70:

Imagine uma situação em que no último tick o preço era 1,3057 e no tick atual tornou-se 1,3059.

Não diga que a ordem não está fechada. Você o verifica incorretamente. Você deve verificar se há "mais ou igual" ou "menos ou igual".


Isso é o que eu faço >=. O acima é apenas um exemplo (desculpe a tautologia) e a questão não é que a ordem não esteja fechada, mas que ela não esteja fechada como eu gostaria que estivesse.

borilunad:
De jeito nenhum, a MT prevê slippage-Slippage, que é sempre a favor do corretor.
Então não há maneira de fazer isso? Triste (((.
 
Zhunko:
Você poderia escrever um roteiro que traçasse esta linha. Ligue este roteiro a uma tecla de atalho.


Obrigado. Vou tentar.
 
Mr.Dmitry:

Isto é o que eu faço >=. O exemplo acima é apenas um exemplo (desculpe a tautologia) e a questão não é que a ordem não feche, mas que ela não feche da maneira que eu gostaria que fechasse.

Quero dizer, não há nenhuma saída? Triste ((!)
Se você definir o Stop Loss finalmente, você tem que quebrar o equilíbrio, começou a arrastá-lo e o preço de repente virou na direção oposta e neste movimento a ordem é fechada pelo Stop Loss não em lucro, mas em prejuízo! Slippage+ spread expandido=:(((
 

Boa noite a todos!

Você pode me dizer o que estou fazendo de errado?

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

retorno(0);

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. Tentei escrever um roteiro para chamar a linha de tendência para que depois fosse possível atribuir uma tecla de atalho para aparecer a linha de tendência.

 
okvseok:

Boa noite a todos!

Você pode me dizer o que estou fazendo de errado?

int start()

{

//----

ObjectCreate("trendln1",OBJ_TREND,0);

ObjectSet("trendln1",OBJPROP_COLOR,Red);

//----

retorno(0);

}

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!P.s. Tentei escrever um roteiro para chamar a linha de tendência para que depois fosse possível atribuir uma tecla de atalho para aparecer a linha de tendência.

Você deve pelo menos especificar alguma coordenada ao criar um objeto.

// Формирование линии
int fLine(string Name            // Префикс имени
         ,string Text            // Префикс описания
         ,int Number             // Номер
         ,int Bar1,double Price1 // Первая точка
         ,int Bar2,double Price2 // Вторая точка
         ,int Bar3,double Price3 // Вспомогательная точка
         ,color Цвет
         ,int Стиль=STYLE_SOLID  // Сплошная
         ,int Видимость=0        // Только на текущем таймфрейме
         ,bool Луч=false
         ,int Толщина=1
         ,bool Фон=true ){
   int Error;
   datetime Time1=Time[Bar1],
            Time2=Time[Bar2];
   if( Number>0 ) Name=Name+Number;
   if( Bar1<Bar2
    || Bar2<LastBar
    || Price1<Zero
    || Price2<Zero ){
      Error=MyError;
      if( РежимОтладки && ПечататьПредупреждения ) Print("*     "+Name+" не создан, параметры: "+DoubleToStr(Price1,Digits)
                                       +" ("+Bar1+"/"+TimeToStr(Time1)+")..."
                                       +DoubleToStr(Price2,Digits)+" ("+Bar2+"/"+TimeToStr(Time2)+")");
      return(Error);
   }
   Error=fObjectDelete(Name);
   if( Error>0 && Error<MyError ){
      return(Error);
   }
   if( ObjectCreate(Name,OBJ_TREND,0,Time1,Price1,Time2,Price2,Time[Bar3],Price3) ){
      if( Text!="" && Number>0 ){
         Text=Text+Number;
         Фон=true;
      }
      if( !ObjectSetText(Name, Text)
       || !ObjectSet(Name, OBJPROP_COLOR, Цвет)
       || !ObjectSet(Name, OBJPROP_STYLE, Стиль)
       || !ObjectSet(Name, OBJPROP_RAY, Луч)
       || !ObjectSet(Name, OBJPROP_TIMEFRAMES, Видимость)
       || !ObjectSet(Name, OBJPROP_WIDTH, Толщина)
       || !ObjectSet(Name, OBJPROP_BACK, Фон) ){
         Error=GetLastError();
         if( !РежимОтладки ) PlaySound("alert.wav");
         Print("***** "+Name+" - ошибка модификации параметров "+Error);
   }  }
   else{
      Error=GetLastError();
      if( !РежимОтладки ) PlaySound("alert.wav");
      Print("***** "+Name+" - объект не создан, ошибка "+Error);
   }
   return(Error);
}
 
tara:

Você deve pelo menos especificar algumas coordenadas ao criar um objeto.


e se eu quiser especificar a coordenada já com o mouse. Só preciso chamar a própria linha de tendência, mas ela ainda não funcionou. Isto é possível?
 
okvseok:

e se eu quiser apontar a coordenada já com o mouse. Só preciso chamar a linha de tendência em si, mas ainda não acionei. Isso é possível?

Não é a coisa mais fácil de construir uma linha de tendência, e você o faz com o mouse.
Razão: