Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.
Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?
Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.
Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?
Никак, в МТ предусмотрено проскальзывание-Slippage, которое всегда в пользу брокера.
Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.
Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?
Представьте ситуацию, что на прошлом тике цена была 1.3057, а на текущем она стала 1.3059.
Не говорите потом что ордер не закрылся. Вы неправильно делаете проверку. Нужно делать на "больше или равно", либо на "меньше или равно", и никак иначе.
Представьте ситуацию, что на прошлом тике цена была 1.3057, а на текущем она стала 1.3059.
Не говорите потом что ордер не закрылся. Вы неправильно делаете проверку. Нужно делать на "больше или равно", либо на "меньше или равно", и никак иначе.
Я так и делаю >=. Пример выше все го лишь пример(извините за тавтологию) и вопрос не в том что ордер не закрывается а в том что закрывается не так как бы мне хотелось
borilunad: Никак, в МТ предусмотрено проскальзывание-Slippage, которое всегда в пользу брокера.
Я так и делаю >=. Пример выше все го лишь пример(извините за тавтологию) и вопрос не в том что ордер не закрывается а в том что закрывается не так как бы мне хотелось
То есть совсем ни как не сделать? Печаль (((
И СтопЛосс поставите, наконец, в безубыток вышли, начали тралить, а цена резко повернула в обратную сторону, и на этой движухе закрывается по СтопЛоссу не в плюсе, а в минусе! Слиппаж+расбухший спред=:((
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!П.с. пробовал написать скрипт вызова трендовой линии, чтоб потом была была возможность назначить горячую клавишу на появление трендовой линии.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!П.с. пробовал написать скрипт вызова трендовой линии, чтоб потом была была возможность назначить горячую клавишу на появление трендовой линии.
Надо бы хоть какую-нибудь координату указать при создании объекта.
// Формирование линии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);
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.
Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?
Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.
Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?
Здравствуйте. Не давно начал изучать язык MQL4 и столкнулся со следующим не пониманием.
Как видно из примера ниже, когда наибольшая свеча бара становится равна 1.3058 то ордер должен закрыться. Ордер и закрывается в соответствии с условием, но цена закрытия не равна 1.3058 (она может быть на 1-3 пунка больше) Так вот, как собственно производить правильное закрытие? Чтоб ордер закрывался на 1.3058?
Представьте ситуацию, что на прошлом тике цена была 1.3057, а на текущем она стала 1.3059.
Не говорите потом что ордер не закрылся. Вы неправильно делаете проверку. Нужно делать на "больше или равно", либо на "меньше или равно", и никак иначе.
Представьте ситуацию, что на прошлом тике цена была 1.3057, а на текущем она стала 1.3059.
Не говорите потом что ордер не закрылся. Вы неправильно делаете проверку. Нужно делать на "больше или равно", либо на "меньше или равно", и никак иначе.
Я так и делаю >=. Пример выше все го лишь пример(извините за тавтологию) и вопрос не в том что ордер не закрывается а в том что закрывается не так как бы мне хотелось
Никак, в МТ предусмотрено проскальзывание-Slippage, которое всегда в пользу брокера.
Можно написать скрипт, который рисует эту линию. Привязать этот скрипт к горячей клавише.
спасибо. попробую
Я так и делаю >=. Пример выше все го лишь пример(извините за тавтологию) и вопрос не в том что ордер не закрывается а в том что закрывается не так как бы мне хотелось
То есть совсем ни как не сделать? Печаль (((Добрый вечер всем!
Подскажите, что делаю не так:
int start()
{
//----
ObjectCreate("trendln1",OBJ_TREND,0);
ObjectSet("trendln1",OBJPROP_COLOR,Red);
//----
return(0);
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!П.с. пробовал написать скрипт вызова трендовой линии, чтоб потом была была возможность назначить горячую клавишу на появление трендовой линии.
Добрый вечер всем!
Подскажите, что делаю не так:
int start()
{
//----
ObjectCreate("trendln1",OBJ_TREND,0);
ObjectSet("trendln1",OBJPROP_COLOR,Red);
//----
return(0);
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!П.с. пробовал написать скрипт вызова трендовой линии, чтоб потом была была возможность назначить горячую клавишу на появление трендовой линии.
Надо бы хоть какую-нибудь координату указать при создании объекта.
Надо бы хоть какую-нибудь координату указать при создании объекта.
а если хочу координату указывать уже мышкой. Мне просто необходимо вызвать саму трендовую линию, но еще не сработанную. Это возможно?
а если хочу координату указывать уже мышкой. Мне просто необходимо вызвать саму трендовую линию, но еще не сработанную. Это возможно?
Построение трендовой - не самое простое занятие, а Вы ее мышкой.