Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 190

 
zfs:
Еще надо CharToStr, а так не копируется. Спасибо.

Не надо. Мы наверное о разных вещах говорим.
 

Подскажите как по лучше сделать функцию закрытия ордеров при превышении еквити над балансом на некоторый процент до нужного %.

Например допустимый максимум эквити=110% от баланса, если в данный момент эквити равен 115%, то закрыть часть лотов (ордеров может быть несколько с разными лотами) так чтобы эквити стал равен 110% от баланса.

 
Skydiver:

Подскажите как по лучше сделать функцию закрытия ордеров при превышении еквити над балансом на некоторый процент до нужного %.

Например допустимый максимум эквити=110% от баланса, если в данный момент эквити равен 115%, то закрыть часть лотов (ордеров может быть несколько с разными лотами) так чтобы эквити стал равен 110% от баланса.


Делаете несколько функций с разными реализациями алгоритма. Сравниваете время работы. Из тех, которые будут работать правильно, выбираете тот, который будет работать минимальное время - это и есть "по лучше". Так, что ничего сложного. ;)))))))
 

Установить уровни в индикаторе и настроить стили возможно с помощью функций SetLevelValue и SetLevelStyle, а вот как добраться до их описания я не понял. Может кто сталкивался и знает ?

 
Desead:

Установить уровни в индикаторе и настроить стили возможно с помощью функций SetLevelValue и SetLevelStyle, а вот как добраться до их описания я не понял. Может кто сталкивался и знает ?


Если речь о документации то выделите слово в MetEditor и нажмите F1. Либо в инете, Например:
https://docs.mql4.com/ru/customind/SetLevelStyle
 

Добрый день. подскажите пожалуйста нужно чтобы прога проверила в нужном месте стоит уже ордер или нет

если нет то поставить

 

Добрый день!

Подскажите, пожалуйста. При открытом рыночном ордере можно поменять его цену открытия с помощью функции:

bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 

Вопрос - а зачем это может понадобиться? Чтобы позднее функция OrderProfit() давала иные результаты, нежели с первоначальной ценой открытия? Или эта возможность заложена для чего-то иного?

(Кстати, а OrderProfit() ведёт расчёт именно от цены открытия или информация запрашивается с сервера, где это расчитывается как-то иначе? В документации об этом ничего не написано.)

 
sannin:

Добрый день. подскажите пожалуйста нужно чтобы прога проверила в нужном месте стоит уже ордер или нет

если нет то поставить

В нужном месте - это в каком?
 
yan720:

Добрый день!

Подскажите, пожалуйста. При открытом рыночном ордере можно поменять его цену открытия с помощью функции:

Вопрос - а зачем это может понадобиться? Чтобы позднее функция OrderProfit() давала иные результаты, нежели с первоначальной ценой открытия? Или эта возможность заложена для чего-то иного?

(Кстати, а OrderProfit() ведёт расчёт именно от цены открытия или информация запрашивается с сервера, где это расчитывается как-то иначе? В документации об этом ничего не написано.)

Модифицировать можно только цену отложенного ордера. Цену открытия рыночной позиции уже не изменить. Странно было бы, купив хлебушка по 20, прийти домой и изменить цену покупки до 5 рублей, а потом в кошельке увидеть приход 15 рублей разницы... Фантастика... ;)

У рыночной позиции можно модифицировать цены её стоп-приказов: СтопЛосс и ТейкПрофит.

OrderProfit() возвращает прибыль/убыток позиции в валюте депозита. Естественно, расчёт ведётся от цены открытия.

 
artmedia70:

Модифицировать можно только цену отложенного ордера. Цену открытия рыночной позиции уже не изменить. Странно было бы, купив хлебушка по 20, прийти домой и изменить цену покупки до 5 рублей, а потом в кошельке увидеть приход 15 рублей разницы... Фантастика... ;)

У рыночной позиции можно модифицировать цены её стоп-приказов: СтопЛосс и ТейкПрофит.


Спасибо за ответ. Сам удивился, что такой вопрос вообще возник. Хотя, может быть я не так понял то, что увидел и что стало причиной вопроса.

Я сейчас смотрю чужой код, чтобы увидеть, какими способами (отличными от моих и, возможно, более эффективными) реализуются те или иные алгоритмы. Сейчас я смотрю на пресловутый советник Ilan 1.6 (приложен). Видно, что его собирали из разных кусков, а потом пересобирали. Но там в строке 337 объявлена пользовательская функция трейлингстопа (хотя флаг его использования и обнулён принудительно в самом начале). Вызывается эта функция в строке 52.

Мой вопрос возник из-за того, что вышеупомянутый трейлингстоп модифицирует открытые ордера (а их может быть несколько) по стоплоссу, сохраняя их первоначальный тейкпрофит, НО задавая этим ордерам в качестве цены открытия (второго параметра функции OrderModify) одно и то же значение (AveragePrice, которое расчитывается в строках 173 и 178).

Или при модификации открытого ордера этот параметр (цена открытия) просто не берётся сервером во внимание и цену можно ставить любой?

Файлы:
ilan1.6.mq4  20 kb
Причина обращения: