(1:10) || algo
(1:10) || algo личный блог
04 августа 2020, 12:45

Ну и дураааааак!!!

Давайте представим себе человека, который не умеет торговать от слова «совсем». Пришел на рынок и сразу купил. Или продал. Может, монетку бросил — не важно. Выбор инструментов, тренды-откаты, индикаторы… Неее, ни о чем подобном не слышал.

Вариантов два:

1. пареньку не повезло — обычная история. Рынок пошел не туда. А чего ожидал этот лошара мальчуган? Или блондинка девица.
В этом варианте три стандартные возможности: закрыться с убытком, еще купить (усредниться: цена-то интереснее стала), просто сидеть и ждать (авось, цена обратно вернется, хоть в ноль удастся закрыться).

2. случилось невероятное — наш перец оказался везучим и увидел прибыль.
Тут тоже три возможности: зафиксировать прибыль, ничего не делать (авось, цена дальше пойдет), и бредовая: еще купить (вдруг он додумался не на всю котлету сразу закупиться и что-то в загашнике у него еще осталось).

Давайте мыслить позитивно. Пусть наш персонаж будет на этот раз везучим, и он получил-таки прибыль. Однако, он все же торговать не умеет, поэтому он не додумался зафиксировать прибыль, а… что бы поабсурднее-то придумать. А, так он еще купил! Не, он не дожидался отката. Прямо в ночь, на вечерке, на самых хаях по рынку вмазал с диким проскальзыванием. Ну, вообще не в теме человек… Бывает.

Веселиться, так веселиться… А пусть ему во второй раз повезет и цена еще чуть дальше пойдет. Что должен сделать здравомыслящий человек, когда увидит не просто прибыль, а очень приличную прибыль? Не, это не наш случай. Наш-то опять купил!

В общем, я сокращу тут историю. Он был совсем упоротым и накуренным, поэтому каждый раз покупал и покупал, когда можно было зафиксировать жирную-прежирную прибыль. И получил результаты, указанные ниже.

Тут нет ни фундаментального анализа рынка, ни технического. Тут вообще ничего нет, кроме прикольного money management, который позволяет вам сократить риски.

Желаете писать роботов в 90 строк кода — изучайте OsEngine. Чат алготрейдеров здесь.

Ну и дураааааак!!!

Ну и дураааааак!!!


using System.Collections.Generic;
using OsEngine.Entity;
using OsEngine.OsTrader.Panels;
using OsEngine.OsTrader.Panels.Tab;


namespace OsEngine.Robots.Trend
{
    public class MyTrend : BotPanel
    {
        public MyTrend(string name, StartProgram startProgram) : base(name, startProgram)
        {
            TabCreate(BotTabType.Simple);
            _tab = TabsSimple[0];
            _tab.CandleFinishedEvent += _tab_CandleFinishedEvent;

            Percentage = CreateParameter("Percentage", 0.2m, 0.1m, 3, 0.1m);
        }

        public StrategyParameterDecimal Percentage;     // процент от цены, через который мы пирамидимся
        private BotTabSimple _tab;

        decimal LastPrice = 0;                          // цена последней сделки
        Direction CurDirection = Direction.None;        // текущее направление торговли

        public enum Direction
        {
            None = 0, Up = 1, Down = -1
        }

        public override string GetNameStrategyType()
        {
            return "MyTrend";
        }

        public override void ShowIndividualSettingsDialog()
        {

        }

        private void _tab_CandleFinishedEvent(List candles)
        {
            List positions = _tab.PositionsOpenAll;
            if (positions.Count == 0)
            {
                if (CurDirection != Direction.Up)   // в первый раз вообще пофиг, куда и когда открываться - сразу покупаем, если позиций нет
                {
                    _tab.BuyAtMarket(1);
                    CurDirection = Direction.Up;
                    LastPrice = _tab.PriceBestAsk;
                }
                else
                {
                    _tab.SellAtMarket(1);
                    CurDirection = Direction.Down;
                    LastPrice = _tab.PriceBestBid;
                }
                return;
            }

            // здесь уже точно есть поза - проверяем направление и цену
            if (CurDirection == Direction.Up && (_tab.PriceBestAsk - LastPrice) / LastPrice * 100 > Percentage.ValueDecimal)
            {   // добавляем лонг - пирамидимся
                _tab.BuyAtMarket(1);
                LastPrice = _tab.PriceBestAsk;
                return;
            }
            else if (CurDirection == Direction.Down && (LastPrice - _tab.PriceBestBid) / LastPrice * 100 > Percentage.ValueDecimal)
            {   // добавляем шорт - пирамидимся
                _tab.SellAtMarket(1);
                LastPrice = _tab.PriceBestBid;
                return;
            }
            
            if ((CurDirection == Direction.Up && (LastPrice - _tab.PriceBestAsk) / LastPrice * 100 > Percentage.ValueDecimal)
                || (CurDirection == Direction.Down && (_tab.PriceBestBid - LastPrice) / LastPrice * 100 > Percentage.ValueDecimal))
            {   // поехали против тренда - кроем всё
                //_tab.CloseAllAtMarket(); -- не срабатывает корректно почему-то: не закрывает все на одной свече
                foreach (Position p in positions)
                {
                    if (p.State == PositionStateType.Open)
                    {
                        _tab.CloseAtMarket(p, p.OpenVolume);
                    }
                }
            }
        }   // _tab_CandleFinishedEvent()
    }
}

42 Комментария
  • Deimon
    04 августа 2020, 13:17
    Вариантов два:
    Этих вариантов всегда только два. Просто «дурак» знает, что ничего не знает, а «профи» думает, что знает…
    • КРЫС
      04 августа 2020, 15:29
      Deimon, строго наоборот
  • 0xFF0000FF
    04 августа 2020, 13:30
    Во, это про меня, дурака.
  • Burzhui
    04 августа 2020, 13:32
    Это на одной выборке или усреднённые данные тестирования по разным выборкам данных?
      • Burzhui
        04 августа 2020, 13:55
        (1:10) || algo, понял
  • Astrolog
    04 августа 2020, 13:43
    Пусть купит искуственный интеллект… если дурак или лошара...

    • Антон Б
      04 августа 2020, 16:51
      Astrolog, труд по доставке вашего, и моего сообщения и его публикации в вебе уже автоматирован.
      вы пользуетесь.

      пользуйтесь тогда голубями.
      и сделки тоже письмами  брокеру отправляйте.

      так нет терминалом пользуетесь.
      и автоматизацию ругаете.

      напоминает феминистку  которая пользуется всем что создано мужчинами вокруг (придумано и реализовано).
      и называет мужиков козлами.
  • Anton Shabunin
    04 августа 2020, 17:41
    I did exactly the wrong thing. The cotton showed me a loss and I kept it. The wheat showed me a profit and I sold it out. © Обязаны знать кто
  • Joni2
    04 августа 2020, 18:22
    Слишком простенько для рабочей системы. Форвад есть у этих тестов?
      • Sergey
        04 августа 2020, 18:45
        (1:10) || algo, смотрел как-то давно OS E. Сырая и с багами. Автор предлагал фиксить за него ошибки. Ситуация изменилась или по старому?
        • Кот Матроскин
          04 августа 2020, 21:44
          Sergey, 
          По основному функционалу все баги давно выловлены. Уже несколько лет торгую — все нормально.
          Там правда постоянно что-то новое добавляется. Но туда не лезу, поэтому не знаю глючно ли…
      • Joni2
        04 августа 2020, 20:06
        (1:10) || algo, Что тут тестировать то? Рабочая система на порядок должна быть и сложнее и изощреннее)
          • Joni2
            05 августа 2020, 05:32
            (1:10) || algo, Иной раз простота — хуже воровства) На реальном рынке такие простые правила уже дано не работают конечно (как и пересечения средних и прочая банальщина). Но для того кто начинает изучать ваш пакет и алго — такой пример вполне сгодится и может быть началом длинного и трудного пути. Предупреждайте хотя бы начинающих — что работать все же придется и много и результат вашей работы — заранее неизвестен.
  • Кот Матроскин
    04 августа 2020, 21:45
     А средняя сделка какая?
      • Кот Матроскин
        04 августа 2020, 21:56
        (1:10) || algo, 
        да я понимаю)
        Это я из любопытства спросил. Обычно такие простые вещи с очень маленькой средней сделкой — т.е. в реальном мире совершенно не торгуемые. Или торгуемые, но через танцы с бубном
  • Йонатан Берсон
    04 августа 2020, 22:52
    а ты тестил на тиках или на свечках в OS?
      • Йонатан Берсон
        04 августа 2020, 23:05
        (1:10) || algo, ну х.з я когда тестил там у меня на тиках и свечках был разный результат ;)
          • Йонатан Берсон
            05 августа 2020, 01:11
            (1:10) || algo, на недельках понятно что будет… я на М15 и М5 тестил в основном)
              • Йонатан Берсон
                05 августа 2020, 01:54
                (1:10) || algo, Ри и Br за пол года, в ломы было больше склейки качать.  Результат был так се, потом из поля интереса пропало из-за других нагрузок, думаю зимой опять начать пилить когда времени будет больше
  • Виталий
    05 августа 2020, 09:57
    а в строчке:
    Percentage = CreateParameter("Percentage", 0.2m, 0.1m, 3, 0.1m);
    что за параметры 0.2m, 0.1m, 3, 0.1m?
  • Виталий
    05 августа 2020, 10:39
    спасибо!
  • Виталий
    05 августа 2020, 10:40
    а ваши та системы более сложные или вот так просто и рубите капусту?
      • ezomm
        05 августа 2020, 13:47
        (1:10) || algo, Процентные шаги цены -правильный путь.Их всего 8 или 10.Это значит что цель час графика от 1% до 2 % при шаге (размере свечи) 0.2%.Мораль -сначала считаем средний размах свечи те размер шага и далее считаем шаги до 10. Коррекция в 2 раза меньше те  0.5%-1% и это 4-5 шагов цены на 1 час тайме. Эта стратегия основана на свечном анализе.Свечной анализ предел в торговле.Поглощение и Харами — это 2 главных сигнала входа.Выход и защита прибыли зависит от жадности трейдера. Шаг 4х часа 0.4%. 2х час 0.3%.День  0.6% для акций и 1.2%-1.8% для фьючерсов типа нефть. Стоп лосс равен одной средней свече тайма при правильном входе типа Харами .
      • ezomm
        05 августа 2020, 15:03
        (1:10) || algo, странный чат у вас.только зашел, матом не ругался, а через 5 мин меня админ выкинул из чата.Программисты все такие нервные? Представился тренером для гур.Так назвали сумасшедшим?
          • ezomm
            05 августа 2020, 23:06
            (1:10) || algo, так я не парюсь.Мне надо чат с гурами чтобы их тренировать.
  • AstonM
    05 августа 2020, 19:59
    Браво, ezoom за конкретику.
    Тех.задания берете на создание робота?
    • ezomm
      05 августа 2020, 23:04
      AstonM, Я не программист.Баловался в Метастоке 7.2 с Бейсиком.Это давно было.В 2007  я все понял и выкинул проги  ВА и ТА.Просто я долго размышлял и делал выводы.Опыт делает свое дело.Я глазами торгую.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн