Блог им. neophyte

Кто сказал что на смартлабе не у кого спрашивать совета?

"...
Если негде взять совета
У него берем!"
© К/ф «Веселая хроника опасного путешествия» (Арго).


Кто сказал что на смартлабе не у кого спрашивать совета? Это не так.
Есть люди, которые могут дать совет, и делают это совершенно бескорыстно.
Вот я вчера посетовал, что замучился с программированием и не знаю как прикрутить к советнику простую функцию. 
Мне тут же навалили кучу предложений и прототипов, с помощью которых я сегодня за 15 минут слепил рабочий блок кода, включающий режим антимартингейла.
Антимартингейл — это когда при серии прибылей, например на тренде, объем торговли наращивается по сравнению с обычным. А когда идет серия убытков, например на боковике робот «запилил», то объем уменьшается.

Парни. Большое спасибо. Вы мне реально помогли. Извините, что не упоминаю всех персонально, но советов действительно было много. И в комментариях, и в личку.
Для тех, кто просил сообщить о результате, публикую блок кода, сделанного с помощью ваших советов и предложений:

//---Мультипликатор риска
if (OrdersHistoryTotal()==0) KMM=1; // Если история пустая, множитель стартового лота равен единице
if (OrdersHistoryTotal()!=0) // Если история не пустая, рассчитываем множитель стартового лота
{
for (int i=OrdersHistoryTotal()-1;i>-1;i--) // Перебор всех закрытых позиций и удаленных ордеров
{
bool OrderSelec=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); // Выбираем ордер
if(OrderCloseTime()!=0 && OrderSymbol()==Symbol() && OrderProfit()>0) // Если выбранный ордер закрыт с прибылью, увеличиваем объем позиции...
{
KMM=AsymmetryRiskFactor;
break;
}
if(OrderCloseTime()!=0 && OrderSymbol()==Symbol() && OrderProfit()<0) // Если выбранный ордер закрыт с убытком, уменьшаем объем позиции...
{
KMM=1/AsymmetryRiskFactor;
break;
}
}
}

В 7 строк, как обещал, не уложился. Если не считать пустые строки со скобками, то получилось 10.
Две ушло на прерывание цикла, о котором я как-то не подумал, но которое оказалось очень кстати. А еще одна на проверку истории пустая/не пустая. Об этом тоже не подумал. Ни в начале теста ни на старте нового счета робот без этого не будет знать что делать.

P.S. Если я, как распоследний чайник в программировании, чего напутал, буду благодарен за критику. Правда советник работает.

P.P.S. Этот же блок позволяет ввести в советник и режим мартингейла. Для этого достаточно задать значение параметра AsymmetryRiskFactor меньше единицы. :)

Результаты.
Антимартингейл выключен. Коэффициент AsymmetryRiskFactor=1.

Исходный код.
Кто сказал что на смартлабе не у кого спрашивать совета?

Новый код.
Кто сказал что на смартлабе не у кого спрашивать совета?

Разницы нет, результаты теста полностью идентичны. 

Антимартингейл включен. AsymmetryRiskFactor=2, т.е. расчетная позиция удваивается при профите и делится на двое при убытке. Соотношение объемов после прибыли и убытка 4:1.

Исходный код.
Кто сказал что на смартлабе не у кого спрашивать совета?

Новый код.
Кто сказал что на смартлабе не у кого спрашивать совета?

В результатах есть несущественная разница, которая вызвана различием обработки данных.
В исходном коде прибыль или убыток считаются по балансу, т.е. учитывается и своп и комиссия. В новом коде только результат торговли по данной сделке. Без учета свопа и комиссии.

57 | ★6
14 комментариев
Земной поклон за то, что не убили лудомана!)))
avatar

Дмитрий Ш, жив курилка.

Мается на отведенном ему полигоне.

Прос… л 1200 баксов, пытается торговать на 60.

Николай Скриган, Может, в этом и есть«смысл жизни»? Если никто другой от Ваших убытков не страдает(но и профиту не рад), то может, пусть Ваша игра Вас радует или печалит… Зачем что-то менять?
avatar

Дмитрий Ш, пока мне это доставляет удовольствие, это будет продолжаться. Плюс к этому — это тест советников и торговой стратегии.

Николай Скриган,  Не был ли Ваш коммент в полном согласии с моиим?;)
avatar
Николай Скриган, Но как только Вы спросите, что делать с недвижной, то тут все будет 50 на 50 :) Так что ценности в совете по такому вопросу не будет никакой
avatar
kbrobot.ru, чтобы получить правильные ответы нужно задавать правильные вопросы. :)
mql5?
avatar
Dordje, mql4
Непонятно как нововведения на размер лота влияют, потому что макслот очень быстро выскакивает — уберите первые ~250 сделок из теста, тогда будет понятно как эта фича влияет на поведение эквити кривой во времени приближенном к настоящему))
Бабёр-Енот, пожалуй вы правы. Упустил этот момент, польстившись на красивую картинку. Слаб человек, и тщеславен. :)
Еще можно добавить фильтр для строки if(OrderCloseTime()!=0 && OrderSymbol()==Symbol() && OrderProfit()>0) 
 OrderProfit()>= TakeProfit
avatar
Igor Ku4in, большинство сделок закрывется по развороту или трейлинг-стопу. Тейк-профит работает только на больших трендах, что бывает достаточно редко.
Николай Скриган, Я имел ввиду чтоб не учитывать сделки профит около нуля. Не знаю подробностей вашего робота, не буду спорить. Я применял коэффмциент TP/SL и наращивал или сокращал лоты по этому коэффициенту.
avatar

Читайте на SMART-LAB:
Фото
🔔 Информация о выплате купонного дохода для наших инвесторов
Сегодня, 19 февраля, ООО МФК «ПСБ Финанс» выплатило купонный доход по облигациям ПСБ Фин2P2 (RU000A10E4G8) за купонный период с...
Самолет лидер по объему ввода жилья в МО
Друзья, привет! Продолжаем делиться своими результатами. 🚀 По данным Главстройнадзора МО , мы стали лидером по объемам ввода  жилья в...
Фото
Макро индикаторы по США подкрепляют кейс дальнейшего роста доллара
Европейские валюты активно сдают позиции после публикации ряда индикаторов по рынку труда, внешней торговле и производственной активности в...
Фото
Россети Ленэнерго. Отчет об исполнении инвестпрограммы за Q4 2025г. Опасения оправдались - обесценение съело прибыль
Компания Россети Ленэнерго опубликовала отчет об исполнении инвестпрограммы за Q4 2025г., где показаны финансовые показатели компании по...

теги блога Николай Скриган

....все тэги



UPDONW
Новый дизайн