Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Многоуровневый маркет-мейкинг Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Пн Окт 06, 2014 2:13 pm Ответить с цитатой Вернуться к началу

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



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Пн Окт 06, 2014 2:20 pm Ответить с цитатой Вернуться к началу

вот код без отливок
Код:

// изменил торговлю от нулевой цены , уменьшил коэф шага step = 0.01 * NullPrice
//удвоил отступ шага EntryPrice = EntryPrice - 2 * step
SetPositionSize(100, spsShares);// лот сделки 100 акций
 
NullPrice = 140 ;//  нулевая цена газпрома
step = 0.01 * NullPrice;// шаг доливки

pos = EntryPrice = 0;
Buy = Sell =Short= Cover =0;

Buy = C <= (NullPrice - step); // если отвалились более чем на шаг   
Sell = C >= (NullPrice + step) ;//если вернулись к NullPrice или выше
Short = C >= (NullPrice + step) ;
Cover= C <= (NullPrice - step);

for( i = 1; i < BarCount; i++ )
{
  if(pos == 0) //если не в позиции
  {
    if(Buy[i] == 1) // если сигнал на лонг
    {
      pos = 1;
      EntryPrice = BuyPrice[i]; // запоминаем цену входа, от нее будет следущая доливка
    }
    if(Short[i] == 1) //если сигнал на шорт
    {
      pos = -1;
      EntryPrice1 = ShortPrice[i]; // запоминаем цену шорта и от нее доливаем
    }
// с каждым шагом вниз от NullPrice  добавляем позицию (доливка)
// с шортом тоже самое но наоборот
  }
  if(pos == 1 ) // если поза в лонге
  {
    Buy[i] = 0;
    if(Sell[i] == 1)
    {
      pos = 0;
    }
    else if(C [i] <= EntryPrice - 2 * step ) // долить, если цена ниже предыдущего лонга на шаг
    {
      Buy[i] = sigScaleIn;
      EntryPrice = EntryPrice - 2 * step; // запоминаем цену последней доливки
    }
  }
if(pos == -1)
  {
    Short[i] = 0;
    if(Cover[i] == 1)
    {
      pos = 0;
    }
    else if(C [i] >= EntryPrice1 + 2 * step ) // долить, если цена выше предыдущего шорта на шаг

    {
      Short[i] = sigScaleIn;
      EntryPrice1 = EntryPrice1 + 2 * step; // запоминаем цену последней доливки
    }
  }
  // при повышении на уровень от последней доливки отливаем
}
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 06, 2014 3:07 pm Ответить с цитатой Вернуться к началу

А есть просто выход из позиции? Ну без оливок, типа сигнал и закрыли всю позу.
Я почему спрашиваю. Напишу, а потом окажется, что не так....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Пн Окт 06, 2014 3:34 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А есть просто выход из позиции? Ну без оливок, типа сигнал и закрыли всю позу.
Я почему спрашиваю. Напишу, а потом окажется, что не так....


проблемка решилась добавкой конструкции сразу за доливкой в несовсем для меня логичное место


коли уж я зарегился и написал сюда, поблагодарю тебя/вас за сайт и проделанную разъяснительную работу с участниками форума. это огромный труд. не имея никакого опыта я разобрался в коде за неделю благодаря именно ресурсу
ну и тогда легкие вопросы. как реализовать доливку/отливку (первичные бай и шорт я знаю)не по закрытию свечи, а по касанию уровня
и насколько это нормально будет работать в реале?
можно как нибудь добавить доливки на график? все что не пробовал добавляет только множественные сигналы for all raw signals
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 06, 2014 4:31 pm Ответить с цитатой Вернуться к началу

Как добавлял на график? Напиши. Подскажу, что не так.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Ср Окт 08, 2014 12:44 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Как добавлял на график? Напиши. Подскажу, что не так.
да уже всех способов и не вспомнить. plotshapes вставлял в цикл где доливки и отливки
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Окт 08, 2014 4:58 pm Ответить с цитатой Вернуться к началу

Не надо ничего в цикл вставлять.
Все делается в конце.
Просто надо знать, что там где позиция добавляется (SigScaleIn) Buy и Short == 99998
А там где сокращается (SigScaleOut) == 99999

Думаю тебе этих сведений будет достаточно.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Apple



Зарегистрирован: 24.09.2014
Сообщения: 39

СообщениеДобавлено: Сб Окт 11, 2014 12:09 am Ответить с цитатой Вернуться к началу

Я тоже для этой системы код пишу. Это похоже на обычную mean reversion систему.

У меня вопрос по использованию sigScale. Он же на выходе дает усреденную цену. Может в этой системе лучше юзать обычные sell,cover? Отливаем ведь мы ориентируясь на уровни.
Посмотреть профиль Отправить личное сообщение
Apple



Зарегистрирован: 24.09.2014
Сообщения: 39

СообщениеДобавлено: Сб Окт 11, 2014 10:51 pm Ответить с цитатой Вернуться к началу

а как правильнее в этой стратегии через sigscale или обычные сигналы:

Код:

else
                if ( C[i] >= priceatbuy + step )
                {
                    Sell[i] = 1 ;
                    priceatbuy = SellPrice[i];
                }
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Сб Окт 11, 2014 11:30 pm Ответить с цитатой Вернуться к началу

sigscale наращивают или сокращают позицию, а обычные сигналы ее полностью закрывают или открывают. Это разные действия.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Apple



Зарегистрирован: 24.09.2014
Сообщения: 39

СообщениеДобавлено: Вс Окт 12, 2014 12:13 am Ответить с цитатой Вернуться к началу

000 писал(а):
sigscale наращивают или сокращают позицию, а обычные сигналы ее полностью закрывают или открывают. Это разные действия.


Олег, а цена какая записывается в массив? Усредненная с предыщими ценами или по которой отливали доливали?
Посмотреть профиль Отправить личное сообщение
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Пн Окт 13, 2014 5:22 pm Ответить с цитатой Вернуться к началу

Apple писал(а):
000 писал(а):
sigscale наращивают или сокращают позицию, а обычные сигналы ее полностью закрывают или открывают. Это разные действия.


Олег, а цена какая записывается в массив? Усредненная с предыщими ценами или по которой отливали доливали?
я выше почти готовый код написал. надо только отливку доливок туда вставить
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 13, 2014 5:48 pm Ответить с цитатой Вернуться к началу

Apple писал(а):
000 писал(а):
sigscale наращивают или сокращают позицию, а обычные сигналы ее полностью закрывают или открывают. Это разные действия.


Олег, а цена какая записывается в массив? Усредненная с предыщими ценами или по которой отливали доливали?

В какой массив?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Ср Окт 29, 2014 10:31 am Ответить с цитатой Вернуться к началу

тут такая проблема
это кусок цикла начинает косячит когда кончается денюжка
Код:

  else if(L [i] <= EntryPrice - 2 * step ) // долить, если цена ниже предыдущего лонга на шаг
    {
      Buy[i] = sigScaleIn;
      EntryPrice = EntryPrice - 2 * step; // запоминаем цену последней доливки
    }
/////////////////отливка лонгов
    else  if (H [i] >= EntryPrice + 2 * step)
     {
       Buy[i] = sigScaleOut;
       EntryPrice = EntryPrice + 2 * step; // запоминаем цену последней отливки
     }

то есть он не доливает позу когда мани кончаются . но пройдя например ещё 10 ступеней дальше начинает отливать при возврате хотя бы на одну ступень . то есть отливает долитые ступени в убыток
в роботе этой проблемы нет, но в тестере мне не оценить истиную прибыльность и лучшие параметры. вопрос в том как остановить этот беспредел. видимо надо что то сунуть в условие цикла связанное с наличкой
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Окт 29, 2014 2:41 pm Ответить с цитатой Вернуться к началу

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

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen