[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 571
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Просьба подсказать.
У меня в советнике расчет выхода идет от накопленной прибыли. Например, если в какой-то момент времени эквити=балансу, то советник закроет все сделки, когда текущий эквити превысит этот самый первоначальный. Закрывает все сделки, сколько бы их не было.
Это просто в тестере, ведь там одна валютная пара.
Реально же торговля идет по нескольким валютам, и учитывать каждую нужно отдельно. Например: Если по какой-то валютной паре нет открытых сделок, то переменная==0. И нужно точно также отслеживать закрытые сделки по этой паре, и ждать пока накопленный профит превысит убыток от открытых ордеров этой пары на заданную величину.
Я не могу найти в учебнике, с помощью какой функции можно организовать разделение учета накопленного профита по разным валютам. Подскажите кто знает. Спасибо.
Надо организовывать свой учет. Функции AccountEquity()и AccountBalance() считают только общий.и для одной валютной пары надо считать не баланс и эквити а суммарный профит по всем ордерам данной пары.
А вообще, обычно, в сове это защита баланса, котрая заакрывает все сделки и отключает советник при слишком большой просадке.
///Надо организовывать свой учет. Функции AccountEquity()и AccountBalance() считают только общий.
Ну так о чем и речь - каким образом организовать?
Писать в файл не хотелось бы, поскольку советник запускатся с разных терминалов. Нужно чтобы он считал только ту валютную пару, на которой стоит. Как считать профит/убыток закрытых ордеров после инициации цикла?
Цикл начинается при первом входе, уже начинается отклонение от нуля в профит или убыток. При каждом закрытии ордера этой пары нужно складывать в буфер результат закрытия ордера. Как только значение буфера + профит по открытым станет больше заданной величины - идет команда на закрытие всех сделок.
Алгоритм мне примерно понятен. Мне непонятно, как учитывать. Я ж новичок)
///Надо организовывать свой учет. Функции AccountEquity()и AccountBalance() считают только общий.
Ну так о чем и речь - каким образом организовать?
Писать в файл не хотелось бы, поскольку советник запускатся с разных терминалов. Нужно чтобы он считал только ту валютную пару, на которой стоит. Как считать профит/убыток закрытых ордеров после инициации цикла?
Цикл начинается при первом входе, уже начинается отклонение от нуля в профит или убыток. При каждом закрытии ордера этой пары нужно складывать в буфер результат закрытия ордера. Как только значение буфера + профит по открытым станет больше заданной величины - идет команда на закрытие всех сделок.
Алгоритм мне примерно понятен. Мне непонятно, как учитывать. Я ж новичок)
Функция
rigonich ,
если уж быть точным то (OrderProfit()+OrderCommission()+OrderSwap()
Так как брать инфу с закрытых ордеров?
Я выбираю ордера с помощью OrderSelect(), из закрытых MODE_HISTORY, но как выбирать нужные?
Если я смогу из истории взять те, что закрылись после моего условия, тогда я конечно возьму и суммирую все что нужно. Но я не понимаю как это сделать, к сожалению.
Подскажите в чем ошибка, я новичок в mql
вписал TimeBar_t = Minute() ; не могу понять то ли скобки куда надо или ;
Замечание: при тестировании последнее известное время сервера моделируется.
Так что ваше условие будет выполняться только в момент старта.
rigonich ,
если уж быть точным то (OrderProfit()+OrderCommission()+OrderSwap()
Так как брать инфу с закрытых ордеров?
Я выбираю ордера с помощью OrderSelect(), из закрытых MODE_HISTORY, но как выбирать нужные?
Если я смогу из истории взять те, что закрылись после моего условия, тогда я конечно возьму и суммирую все что нужно. Но я не понимаю как это сделать, к сожалению.
А какие вам нужно? Например запоминаете дату открытия первого ордера по инструменту вашим советником и выбираете все, открытые после нее, сбрасываете значение переменной после закрытия по условию и запоминаете новое (текущее) значение.
Просьба подсказать.
У меня в советнике расчет выхода идет от накопленной прибыли. Например, если в какой-то момент времени эквити=балансу, то советник закроет все сделки, когда текущий эквити превысит этот самый первоначальный. Закрывает все сделки, сколько бы их не было.
Это просто в тестере, ведь там одна валютная пара.
Реально же торговля идет по нескольким валютам, и учитывать каждую нужно отдельно. Например: Если по какой-то валютной паре нет открытых сделок, то переменная==0. И нужно точно также отслеживать закрытые сделки по этой паре, и ждать пока накопленный профит превысит убыток от открытых ордеров этой пары на заданную величину.
Я не могу найти в учебнике, с помощью какой функции можно организовать разделение учета накопленного профита по разным валютам. Подскажите кто знает. Спасибо.
https://www.mql5.com/ru/forum/131859/page3#434223 вот, и еще https://www.mql5.com/ru/forum/131859/page3#434222
Не могу написать дополнительное условие для открытие зделок по задуманному принцепу.
Нужно что бы после закрытии любой позиции по TP или SL он открыл её заного с противоположной позицией.
Пример: если закрылась позиция Sell скажем по SL он заного открыл позицию Sell вместе с ней и Buy
Вот 2 условия из советника:
условие на покупку
if (BUY)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER ("Buy");
}
условие на продажу
if (SELL)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders)OPENORDER ("Sell");
}
Кто в этом резбирается помогите написать дополнительное усло
Чтобы смещать влево -- F12, вправо -- не знаю.
rigonich Спасибо, подсказал отлично! Как раз что надо!