Скальпинг в классическом арбитраже - страница 7

 
Andrey Miguzov #:

Я тоже так думал, а сейчас переделал под таймер. 

Раньше в OnBookEvent:

1) пришли котировки

2) посчитали базис/ставку

3) Если условия по цене выполнены -  входим в позицию иначе завершаемся.

Как итог - из-за "лошадиного" времени открытия позиций (100-150 мс) имею сильные проскальзывания по цене.


Теперь в OnTimer c шагом 200-500 мс:

1) посмотрел котировки;

2) посчитали базис/ставку;

3) Если условия по цене выполнены - запоминаем время иначе время "обнуляем";

4) Если цена на протяжении 2-5 с (пока не определил сколько лучше) находится в нужной нам зоне -  входим в позицию.

Второй вариант тестируется сильно прибыльнее чем первый. Желтым выделил время задержки на вход и выход в с. Первая строка без задержек  - сразу вход. Вторая строка - задержка 2 с. Естественно - в тестере задано время исполнения 150 мс.


Я вообще не понимаю откуда у Вас берется просадка?

Вы, вероятно, что-то не так делаете...

Специально перевел роботов в рублевый режим (как у Вас) с учетом комиссий, стоял на реале 1,5 часа по многим инструментам

достаточно большая чистая прибыль (это, конечно без проскальзывания)


Добавлено

Вход

double p_price = ((b_data.spot_sell_price - Divs) * exp_data.fut_contr_size);
result = b_data.fut_buy_price - p_price - in_comiss;

Выход

double p_price = ((b_data.spot_buy_price - Divs) * exp_data.fut_contr_size);
result = b_data.fut_sell_price - p_price + out_comiss;

На Бирже Грааля нет и быть не может, как и впрочем и на форекс, а есть норма прибыли, которая рассчитывается, она или устраивает Вас или нет!

Правда есть два места, куда можно прийти с мешками и туда будут сыпаться купюры, это газовая и нефтяная трубы, но туда вход заказан.

А всем остальным остаётся воровать или упорно работать, правда некоторые тщетно ищут Грааль... :) 

 
prostotrader #:

Я вообще не понимаю откуда у Вас берется просадка?

да нет её :) всё ок. Я видимо очень не понятно излагаю. Под "риском" подразумевал не просадку, а риск получения маленькой прибыли в итоге (то, о чем Вы пишите). Деньги не работают, а висят мертвым грузом до экспирации. Но это не просадка - Вы правы.

prostotrader #:

Вход

Выход

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

Грубо - у меня цена входа - это сколько мы заработаем если будем сидеть до экспирации. Иначе, допустим, Сбер с ВТБ тяжело сравнивать.

prostotrader #:

Специально перевел роботов в рублевый режим (как у Вас) с учетом комиссий, стоял на реале 1,5 часа по многим инструментам

достаточно большая чистая прибыль (это, конечно без проскальзывания)

Вот из-за "проскальзывания" и пришлось перейти на таймер. Я просто не успеваю зайти по нужной цене, её съедают до меня.

Но если подождать пока цена войдет в нужную зону, и не заходить сразу (ждем 2-3 с), то с очень большой вероятностью проскальзывания не будет. При большой задержке исполнения - это единственный вариант. 

Добавлено:

Если подскажите - буду очень благодарен:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Скальпинг в классическом арбитраже

Andrey Miguzov, 2022.04.27 02:05

Где лучше дивиденды "смотреть"? Я вот этих ребят давно читаю (в телеграмме подписан). Но может что-то лучше есть?


 
prostotrader #:


Вставьте в OnInit функцию, уберется всё лишнее с графика, а Comment будет работать. clrLightYellow - на свой вкус :)

bool ChartStart(void)
  {
   long m_chart_id=ChartID();

   ChartSetInteger(m_chart_id,CHART_SHOW_BID_LINE,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_ASK_LINE,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_LAST_LINE,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_PERIOD_SEP,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_GRID,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_ONE_CLICK,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_PRICE_SCALE,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_DATE_SCALE,false);
   ChartSetInteger(m_chart_id,CHART_DRAG_TRADE_LEVELS,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_VOLUMES,CHART_VOLUME_HIDE);
   ChartSetInteger(m_chart_id,CHART_MODE,CHART_LINE);
   ChartSetInteger(m_chart_id,CHART_AUTOSCROLL,false);
   ChartSetInteger(m_chart_id,CHART_FOREGROUND,false);
   ChartSetInteger(m_chart_id,CHART_SHOW_TRADE_LEVELS,false);
   ChartSetInteger(m_chart_id,CHART_CROSSHAIR_TOOL,false);
   ChartSetInteger(m_chart_id,CHART_CONTEXT_MENU,false);
   ChartSetInteger(m_chart_id,CHART_COLOR_BACKGROUND,clrLightYellow);
   ChartSetInteger(m_chart_id,CHART_COLOR_CHART_LINE,clrLightYellow);
   ChartSetInteger(m_chart_id,CHART_MOUSE_SCROLL,false);
   ChartSetInteger(m_chart_id,CHART_COLOR_FOREGROUND,clrBlack);
   ChartSetInteger(m_chart_id,CHART_SHOW_TICKER,true);

   ObjectsDeleteAll(m_chart_id);

   ChartRedraw(m_chart_id);

   return(true);
  }
 
Andrey Miguzov #:


Если подскажите - буду очень благодарен:


https://bcs-express.ru/dividednyj-kalendar


Кстати, еще через час до 13-59

Обратите внимание на SBRF (Большие мальчики пошли обедать, вот и супер-прибыль образовалась)

Зеленым обведены изменения в положительную сторону от предыдущего серина


Календарь инвестора: дивиденды и даты закрытия реестров, дивидендная доходность, как получать дивиденды, размер дивиденда руб./акция
  • bcs-express.ru
Календарь инвестора: дивиденды и даты закрытия реестров, дивидендная доходность, как получать дивиденды, размер дивиденда руб./акция
 
Andrey Miguzov #:

Вставьте в OnInit функцию, уберется всё лишнее с графика, а Comment будет работать. clrLightYellow - на свой вкус :)

:):):)

bool BuildGuis()
{
  //--- Set chart wo volumes 
  ChartSetInteger(ChartID(), CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE); 
//--- Set chart in candles    
  if(!ChartSetInteger(ChartID(), CHART_MODE, CHART_CANDLES)) 
  {
    MessageBox("Режим свечей не установлен!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Set Time Frame H1
  if(!ChartSetSymbolPeriod(ChartID(), NULL, PERIOD_CURRENT))
  {
    MessageBox("Период графика не установлен!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Set candles color
  if(!ChartSetInteger(ChartID(), CHART_COLOR_CANDLE_BULL, clrGreen))
  {
    MessageBox("Цвет бычьих свечей не установлен!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//---      
  if(!ChartSetInteger(ChartID(), CHART_COLOR_CANDLE_BEAR, clrRed))
  {
    MessageBox( "Цвет медвежьих свечей не установлен!", "Ошибка", MB_OK | MB_ICONHAND );
    return(false);
  } 
//--- Set fon color
  if(!ChartSetInteger(ChartID(), CHART_COLOR_BACKGROUND, clrDimGray))  //TODO!! Not work
  {
    MessageBox("Цвет фона не установлен!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Set hide line bid
  if(!ChartSetInteger(ChartID(), CHART_SHOW_BID_LINE, false))
  {
    MessageBox("Не скрыта линия BID!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }   
//--- Set show line last 
  if ( !ChartSetInteger(ChartID(), CHART_SHOW_LAST_LINE, true ) )
  {
    MessageBox( "Линия последней цены не установлена!", "Ошибка", MB_OK | MB_ICONHAND );
    return(false);
  }      
//--- Set line bid color
  if(!ChartSetInteger(ChartID(), CHART_COLOR_LAST, clrYellow))
  {
    MessageBox("Цвет линии последней цены не установлен!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Set color bid up
  if(!ChartSetInteger(ChartID(), CHART_COLOR_CHART_UP, clrBlack))
  {
    MessageBox("Цвет свечи вверх не установлен!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- Set color bid up
  if(!ChartSetInteger(ChartID(), CHART_COLOR_CHART_DOWN, clrBlack))
  {
    MessageBox( "Цвет свечи вниз не установлен!", "Ошибка", MB_OK | MB_ICONHAND );
    return(false);
  }
//--- Color grid
  if(!ChartSetInteger(ChartID(), CHART_COLOR_GRID, clrDarkGray))
  {
    MessageBox("Не установлен цвет сетки!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
  //--- Fast trade
  if(!ChartSetInteger(ChartID(), CHART_SHOW_ONE_CLICK, false))
  {
    MessageBox("Не скрыта панель быстрой торговли!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
//--- White text
  if(!ChartSetInteger(ChartID(), CHART_COLOR_FOREGROUND, clrWhite))
  {
    MessageBox("Не установлен белый цвет шрифта!", "Ошибка", MB_OK | MB_ICONHAND);
    return(false);
  }
return(true);
}
 
prostotrader #:

:):):)

Но ведь лишняя информация? Хотя тут дело вкуса. Меня мелькания линий отвлекают только.

За ссылку на сайт - большое спасибо!

 

Всем здравствуйте!

Наблюдаю по POLY на протяжении длительного промежутка времени контанго со значением сильно выше ставки рефинансирования.

Если считать доходность по классике - сейчас она составляет 40-50% в годовом выражении:

- цена покупки акции ~ 590.0 

- цена продажи фьючерса ~ 6070 (размер контракта 10)

- Дата исполнения -  17.06.2022. (осталось 26 дней).

Итого: 6070-5900 = 170 р. прибыли за 26 дней на каждые вложенные 5900 р.

100*365*(170/5900)/26 = 40,4% в годовом исчислении.

Вопрос - почему так много? Ведь арбитражем крупные игроки должны сдвигать эту цифру к ставке рефинансирования...

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

 
Andrey Miguzov #:

Всем здравствуйте!

Наблюдаю по POLY на протяжении длительного промежутка времени контанго со значением сильно выше ставки рефинансирования.

Если считать доходность по классике - сейчас она составляет 40-50% в годовом выражении:

- цена покупки акции ~ 590.0 

- цена продажи фьючерса ~ 6070 (размер контракта 10)

- Дата исполнения -  17.06.2022. (осталось 26 дней).

Итого: 6070-5900 = 170 р. прибыли за 26 дней на каждые вложенные 5900 р.

100*365*(170/5900)/26 = 40,4% в годовом исчислении.

Вопрос - почему так много? Ведь арбитражем крупные игроки должны сдвигать эту цифру к ставке рефинансирования...

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

Не смотря на то, что серебро растет, акции Полиметалла падают.

Есть на рынке некое "залипание". Купившие фьючерсы по высокой цене не хотят сейчас фиксировать убытки.

К сожалению, в Открывашке нельзя торговать POLY

 
prostotrader #:

Не смотря на то, что серебро растет, акции Полиметалла падают.

Есть на рынке некое "залипание". Купившие фьючерсы по высокой цене не хотят сейчас фиксировать убытки.

Но это ведь деньги, которые на земле лежат? Чтобы их забрать даже наклонятся не надо - нужны только наличные средства на брокерском счету...

Я этого не могу понять... Должен быть какой-то риск о котором я не знаю.

Почему в Открытии запретили торговлю по ним - не встречали информацию?

 
Andrey Miguzov #:

Но это ведь деньги, которые на земле лежат? Чтобы их забрать даже наклонятся не надо - нужны только наличные средства на брокерском счету...

Я этого не могу понять... Должен быть какой-то риск о котором я не знаю.

Почему в Открытии запретили торговлю по ним - не встречали информацию?

Нет никакого риска... :)

Я много лет торгую, по этой ТС не было ни одной просадки.

Дело в том, что когда анализируешь эту стратегию день-два, то как правило ставки ниже ЦБ, и никто

не заморачивается...  

POLY - это иностранные акции, Открывашка под санкциями.

Добавлено

Кстати, вот Вам пример

Вы насчитали 40% годовых, а я сейчас поставил робота и он показал, что 27,19%

Я не сомневаюсь, что было 40 и более, но эти показатели бывают редко, что и делает невозможным

торговать "руками".

Причина обращения: