Как выполнить только однократное действие по серии убытков? - страница 4

 
alsu:
В Standard C++ Library от мелкомягких есть поддержка TR1 Regular expressions, думаю экспортировать все нужные функции через dll-ку не составит труда.

спасибо, но тут пока вопрос не распарсить строку, а что туда положить и зачем это нужно )))))

ЗЫ: тут задача скорее для разминки ума, чем для практической реализации, .dll использую вовсю когда проверяю свои идеи - в сети уйма готовых наработок на С++/C#/Delphi - в сто раз быстрее подключить .dll чем портировать код ;)

 
IgorM:

ктонить делал примерно так:

написать перенос истории сделок в глобальные переменные не проблема, просто еще не придумал что помещать в глоб.переменные и как побыстрее распарсить строку(имя переменной)

Что надо, то и помещать. Парсить ничего не надо, для каждого параметра свою глобальная переменная. Длина имени глобальной переменной ограничена 64 знака.
 

Ребята, всем спасибо!

Я в итоге сделал через дату во внешнем параметре. Попутно написал очередную функцию NumberOfLastLossPosFromDate().

 
Есть еще вариант использовать файл-флаг. Можно его при надобности руками сбросить.
 
KimIV:

Ребята, всем спасибо!

Я в итоге сделал через дату во внешнем параметре. Попутно написал очередную функцию NumberOfLastLossPosFromDate().


А как вернуть на круги своя? :)

imho, есть не менее двух способов обеспечения адаптивности алгоритма: 1) динамическая оптимизация параметров (фу, как некрасиво) и 2) неработоспособность алгоритма на участках, где он работать не должен. А как только с этого участка слетел - само все заработало и вернулось на круги своя :)

 
KimIV:

Ребята, всем спасибо!

Я в итоге сделал через дату во внешнем параметре. Попутно написал очередную функцию NumberOfLastLossPosFromDate().


логичней сделать набор функций которые включают советник и набор функций, которые отключают. Всё в едином формате - через глобальные переменные автоматически создаваемые например с именем советника. Потому что отключение по серии убыточных подряд и включение по истечении времени с начала этой серии это один из вариантов. Может быть например отключение если потеряли более X% от депо за день, или включение когда цена вышла из диапазона где совершались убыточные сделки серии.

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

 

Здравствуйте, как всё-таки отключить советник после серии убытков? Допустим в советнике стоит ограничение на 3 убыточные сделки в день, параметр 3 вывести в string для управления, проверять убыточность из истории и после наступления 3 убыточной сделки в день заканчивать торговлю автоматически, т.е не закрывать сделку если она открылась, а не открывать новые? А с наступлением нового дня обнулять счётчик.

 
cotand:

Здравствуйте, как всё-таки отключить советник после серии убытков? Допустим в советнике стоит ограничение на 3 убыточные сделки в день, параметр 3 вывести в string для управления, проверять убыточность из истории и после наступления 3 убыточной сделки в день заканчивать торговлю автоматически, т.е не закрывать сделку если она открылась, а не открывать новые? А с наступлением нового дня обнулять счётчик.

Всмысле как? Тебе логику или код?

1) Заводишь переменную стоп 

2) если тру то ретурн 

3) Проверяешь исторические ордера за сегодня и если их больше 3 то стоп = тру

4) Если меньше = фолс 

 

Спасибо, а как это записать в код :)

 

 
bool stop=false;
 
int start()
{
  if (stop) return(0);
 
  ....
// Ваш блок----
 {
 
  if (тра-та-та...  завершении определённого блока программы) {stop=true; return(0);}
 }
//--------------
 
}

наверно что-то типо такого должно быть? как можно вместо тра та та записать 3 сделки закрытые по стоп лоссу за сегодня и так продолжить чтоб завтра всё сбросилось?
 
cotand:

наверно что-то типо такого должно быть? как можно вместо тра та та записать 3 сделки закрытые по стоп лоссу за сегодня и так продолжить чтоб завтра всё сбросилось?
Сделки сделкам рознь! У меня эксперт замеряет процент потери от последнего максимального баланса, сохраняющегося в глобальной переменной терминала. Как только достигается процент непозволительного предела, эксперт не открывает позиции. Чтобы разрешить эксперту снова начать работать, на Демо увеличиваю процент потери, а на Реале добавляю средств, если их не хватает для нормальной работы, или вывожу средства, если их хватает!
Причина обращения: