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?
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.
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.
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.
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=:(((
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!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.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!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);
}
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?
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?
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.
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.
De jeito nenhum, a MT prevê slippage-Slippage, que é sempre a favor do corretor.
Você poderia escrever um roteiro que traçasse esta linha. Ligue este roteiro a uma tecla de atalho.
Obrigado. Vou tentar.
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 ((!)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.
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.
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?
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.