1 Если линия 7 выше линии 1, при этом линия 1 выше линии 6, 2 то 3 открывается ордер на покупку с объемом Lots_Typ, возможным проскальзыванием в 5 пунктов, без СЛ и ТП, по цене закрытия.
1 Если потенциальная прибыль данного счета больше 50 $, 2 то 3 закрываются все ордера, независимо от того, какими свойствами они обладают (объем, покупка/продажа, ...).
Логическая цепочка выстроена правильно, а код по логической цепочки - нет.
OrderClose(Symbol(),5,Ask,0);
Ошибка заключается здесь. Если строить логическую цепочку, относительно выше представленного кода, получим: Закрытие 5 лотов ордера с ценой закрытия и возможным проскальзыванием в 0 пунктов.
1 Если линия 7 выше линии 1, при этом линия 1 выше линии 6, 2 то 3 открывается ордер на покупку с объемом Lots_Typ, возможным проскальзыванием в 5 пунктов, без СЛ и ТП, по цене закрытия.
1 Если потенциальная прибыль данного счета больше 50 $, 2 то 3 закрываются все ордера, независимо от того, какими свойствами они обладают (объем, покупка/продажа, ...).
Логическая цепочка выстроена правильно, а код по логической цепочки - нет.
Ошибка заключается здесь. Если строить логическую цепочку, относительно выше представленного кода, получим: Закрытие 5 лотов ордера с ценой закрытия и возможным проскальзыванием в 0 пунктов.
Как это исправить? Посоветуйте пожалуйста.
Уважаемый, читайте внимательно Документацию,
конкретно
bool OrderClose(
int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
Закрытие позиции. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
ticket
-
Уникальный порядковый номер ордера.
lots
-
Количество лотов для закрытия.
price
-
Цена закрытия.
slippage
-
Значение максимального проскальзывания в пунктах.
Color
-
Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.
int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
Закрытие позиции. Возвращает TRUE при успешном завершении функции. Возвращает FALSE при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
ticket
-
Уникальный порядковый номер ордера.
lots
-
Количество лотов для закрытия.
price
-
Цена закрытия.
slippage
-
Значение максимального проскальзывания в пунктах.
Color
-
Цвет стрелки закрытия на графике. Если параметр отсутствует или его значение равно CLR_NONE, то стрелка на графике не отображается.
Пример:
Все это я знаю. Как сделать так, что бы закрывались все ордера, независимо от их особенностей?
В моем примере: случайный номер ордера, объем - 5, по цене закрытия, с проскальзыванием 0, без стрелки. В документационном примере: расчет номера ордера по order_id, обьем 1, по цене закрытия, с проскальзыванием 3, стрелка имеет красный цвет.
1 имеется расчет номера ордера - не имеется расчет номера ордера 2 объем (1) - объем (5) 3 проскальзывание (3) - проскальзывание (0) 4 стрелка красного цвета - стрелки нет
Отличия найдены. Теперь вернемся к задаче.
Задача 1 Написать код, который будет закрывать все открытые ордера без исключений.
Мои рассуждения. Такой код возможно написать, но встает вопрос: "Как?". 1 - создается код, который ведет наблюдение за всеми открытыми ордерами (общий объем, номер кластера ордеров, покупка/продажа, допустимое проскальзывание). 2 - создается код, который открывает ордера и отправляет данные в код, который ведет наблюдение за всеми этими ордерами (создается своеобразная база данных). 3 - создается код, который закрывает все ордера, при определенных условиях и берет только не использованные данные из "своеобразной базы данных". Повторно данные не используются.
Можно сделать так, но думаю, что есть другой, менее громоздкий вариант. Потому и спрашиваю: "Как?".
люди подскажите пожалуйста, как в MQL4 считать проценты
к примеру x=10+3% как это записать програмно?
чтото в справочнике немагу найти.
x=10*1.03
x=10*1.03
ок! но Я же небуду каждый раз их пересчитывать, нужна функция которая сама считает проценты
y=3; // чило постоянно меняется с каждым тиком
x=10+yP; // вместо P нужны проценты. а в mql я немагу их написать
1 Если линия 7 выше линии 1, при этом линия 1 выше линии 6,
2 то
3 открывается ордер на покупку с объемом Lots_Typ, возможным проскальзыванием в 5 пунктов, без СЛ и ТП, по цене закрытия.
1 Если потенциальная прибыль данного счета больше 50 $,
2 то
3 закрываются все ордера, независимо от того, какими свойствами они обладают (объем, покупка/продажа, ...).
Логическая цепочка выстроена правильно, а код по логической цепочки - нет.
Ошибка заключается здесь.
Если строить логическую цепочку, относительно выше представленного кода, получим:
Закрытие 5 лотов ордера с ценой закрытия и возможным проскальзыванием в 0 пунктов.
Как это исправить? Посоветуйте пожалуйста.
ок! но Я же небуду каждый раз их пересчитывать, нужна функция которая сама считает проценты
y=3; // чило постоянно меняется с каждым тиком
x=10+yP; // вместо P нужны проценты. а в mql я немагу их написать
ок! но Я же небуду каждый раз их пересчитывать, нужна функция которая сама считает проценты
y=3; // чило постоянно меняется с каждым тиком
x=10+yP; // вместо P нужны проценты. а в mql я немагу их написать
x - число, y - нужный процент
передаём число x и нужный от него процент y, на выходе получаем процент y от числа x
Логическая цепочка кода:
1 Если линия 7 выше линии 1, при этом линия 1 выше линии 6,
2 то
3 открывается ордер на покупку с объемом Lots_Typ, возможным проскальзыванием в 5 пунктов, без СЛ и ТП, по цене закрытия.
1 Если потенциальная прибыль данного счета больше 50 $,
2 то
3 закрываются все ордера, независимо от того, какими свойствами они обладают (объем, покупка/продажа, ...).
Логическая цепочка выстроена правильно, а код по логической цепочки - нет.
Ошибка заключается здесь.
Если строить логическую цепочку, относительно выше представленного кода, получим:
Закрытие 5 лотов ордера с ценой закрытия и возможным проскальзыванием в 0 пунктов.
Как это исправить? Посоветуйте пожалуйста.
Уважаемый, читайте внимательно Документацию,
конкретно
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75) { OrderClose(order_id,1,Ask,3,Red); return(0); }Уважаемый, читайте внимательно Документацию,
конкретно
Как сделать так, что бы закрывались все ордера, независимо от их особенностей?
Все это я знаю.
Как сделать так, что бы закрывались все ордера, независимо от их особенностей?
Знаешь молодец,
x - число, y - нужный процент
передаём число x и нужный от него процент y, на выходе получаем процент y от числа x
то что нужно, спасибо Вам большое... оказывается как все легко, а Я блин пол дня голову ламаю!! еще раз спасибо!
Знаешь молодец,
В моем примере: случайный номер ордера, объем - 5, по цене закрытия, с проскальзыванием 0, без стрелки.
В документационном примере: расчет номера ордера по order_id, обьем 1, по цене закрытия, с проскальзыванием 3, стрелка имеет красный цвет.
1 имеется расчет номера ордера - не имеется расчет номера ордера
2 объем (1) - объем (5)
3 проскальзывание (3) - проскальзывание (0)
4 стрелка красного цвета - стрелки нет
Отличия найдены.
Теперь вернемся к задаче.
Задача 1
Написать код, который будет закрывать все открытые ордера без исключений.
Мои рассуждения.
Такой код возможно написать, но встает вопрос: "Как?".
1 - создается код, который ведет наблюдение за всеми открытыми ордерами (общий объем, номер кластера ордеров, покупка/продажа, допустимое проскальзывание).
2 - создается код, который открывает ордера и отправляет данные в код, который ведет наблюдение за всеми этими ордерами (создается своеобразная база данных).
3 - создается код, который закрывает все ордера, при определенных условиях и берет только не использованные данные из "своеобразной базы данных".
Повторно данные не используются.
Можно сделать так, но думаю, что есть другой, менее громоздкий вариант.
Потому и спрашиваю: "Как?".