vova1122 #: Здравствуйте. Подскажите пожалуйста как сделать так чтобы советник определял самый убыточный открытый ордер. Я хочу этот ордер закрывать с другими ордерами в сетке в другом направлении с профитом, чтобы суммарно получался "+"
Обойдитесь без всяких циклов, используя общий профит счета и если условие закрытия устраивает то закрывайте всё и неважно кто там был самый убыточный)
double AccountProfit();
Ну или если нужно более тонкий отбор, по символу, открытым позициям, магик номеру, тогда вычисляйте общий профит следующей функцией и определяйте что с этим профитом делать)
//+----------------------------------------------------------------------------+//| Описание : Возвращает суммарный профит открытых позиций в валюте депозита |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+double GetProfitOpenPosInCurrency(string sy="", int op=-1, int mn=-1)
{
double p=0;
int i, k=OrdersTotal();
if(sy=="0")
sy=_Symbol;
for(i=0; i<k; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op))
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(mn<0 || OrderMagicNumber()==mn)
{
p+=(OrderProfit()+OrderCommission()+OrderSwap());
}
}
}
}
}
return(p);
}
//End
Здравствуйте! Подскажите пож-та, например образовался фрактал и нужно чтобы этот сигнал (фрактала) был действителен в течение следующих 3-5 баров, как это можно сделать?
Igor168 #: Здравствуйте! Подскажите пож-та, например образовался фрактал и нужно чтобы этот сигнал (фрактала) был действителен в течение следующих 3-5 баров, как это можно сделать?
Igor168 #: Здравствуйте! Подскажите пож-та, например образовался фрактал и нужно чтобы этот сигнал (фрактала) был действителен в течение следующих 3-5 баров, как это можно сделать
Образовался фрактал и эксперт должен сделать вход не в данный момент времени, а через 3-5 баров от места образования сигнала, как это реализовать?
Galim_V #: Да, если ассемблер ваш родной. А зачем?
Речь о том чтобы по возможности реализовать FileWriteArray() другим способом. Например прочитать файл CSV как текстовый (ASCII), построчно, а затем используя разделитель ";" из каждой строки занести значения в ячейки двухмерного массива, попутно конвертируя их из string-вых в double. Мне интересно как это сделать на уровне алгоритма. Будет ли работать то что описал выше? (давно этим не занимался) CSV, в отличие от бинарного, в моем случае удобен тем что его можно подредактировать вручную.
Речь о том чтобы по возможности реализовать FileWriteArray() другим способом. Например прочитать файл CSV как текстовый (ASCII), построчно, а затем используя разделитель ";" из каждой строки занести значения в ячейки двухмерного массива, попутно конвертируя их из string-вых в double. Мне интересно как это сделать на уровне алгоритма. Будет ли работать то что описал выше? (давно этим не занимался) CSV, в отличие от бинарного, в моем случае удобен тем что его можно подредактировать вручную.
В этом линке более сложный случай. У меня задача должна быть попроще, т.к. в CSV файле будут только цифры и разделители ";" (возможно в конце каждой строки потребуется кажется '\t' ?).
Здравствуйте. Подскажите пожалуйста как сделать так чтобы советник определял самый убыточный открытый ордер. Я хочу этот ордер закрывать с другими ордерами в сетке в другом направлении с профитом, чтобы суммарно получался "+"
Обойдитесь без всяких циклов, используя общий профит счета и если условие закрытия устраивает то закрывайте всё и неважно кто там был самый убыточный)
double AccountProfit();
Ну или если нужно более тонкий отбор, по символу, открытым позициям, магик номеру, тогда вычисляйте общий профит следующей функцией и определяйте что с этим профитом делать)
Подскажите пож-та, например образовался фрактал и нужно чтобы этот сигнал (фрактала) был действителен в течение следующих 3-5 баров, как это можно сделать?
Здравствуйте!
Подскажите пож-та, например образовался фрактал и нужно чтобы этот сигнал (фрактала) был действителен в течение следующих 3-5 баров, как это можно сделать?
Создать свои котировки...
или сформулируйте вопрос иначе.
Возник вопрос - В МТ4 имеется функция FileWriteArray(), про которую сказано:
Реально ли написать эквивалентную пользовательскую функцию, которая бы делала тоже самое, но работала бы с файлами в формате CSV ?
Да, если ассемблер ваш родной. А зачем?
Здравствуйте!
Подскажите пож-та, например образовался фрактал и нужно чтобы этот сигнал (фрактала) был действителен в течение следующих 3-5 баров, как это можно сделать
Образовался фрактал и эксперт должен сделать вход не в данный момент времени, а через 3-5 баров от места образования сигнала, как это реализовать?
Образовался фрактал и эксперт должен сделать вход не в данный момент времени, а через 3-5 баров от места образования сигнала, как это реализовать?
В коде получения сигнала добавить сдвиг
Спасибо!
Да, если ассемблер ваш родной. А зачем?
Речь о том чтобы по возможности реализовать FileWriteArray() другим способом.
Например прочитать файл CSV как текстовый (ASCII), построчно, а затем используя разделитель ";" из каждой строки занести значения в ячейки двухмерного массива, попутно конвертируя их из string-вых в double.
Мне интересно как это сделать на уровне алгоритма. Будет ли работать то что описал выше? (давно этим не занимался)
CSV, в отличие от бинарного, в моем случае удобен тем что его можно подредактировать вручную.
Речь о том чтобы по возможности реализовать FileWriteArray() другим способом.
Например прочитать файл CSV как текстовый (ASCII), построчно, а затем используя разделитель ";" из каждой строки занести значения в ячейки двухмерного массива, попутно конвертируя их из string-вых в double.
Мне интересно как это сделать на уровне алгоритма. Будет ли работать то что описал выше? (давно этим не занимался)
CSV, в отличие от бинарного, в моем случае удобен тем что его можно подредактировать вручную.
Смотрите тут: https://www.mql5.com/ru/forum/459376
Смотрите тут: https://www.mql5.com/ru/forum/459376
В этом линке более сложный случай.
У меня задача должна быть попроще, т.к. в CSV файле будут только цифры и разделители ";" (возможно в конце каждой строки потребуется кажется '\t' ?).