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

 
fxsaber #:

Совсем не в теме, но бесплатный сыр не может быть неинтересным. Должен же быть риск  в чем-то. Если где-то прибудет, то у кого станет меньше?

Просьба объяснить на пальцах, как работает.


Сейчас выглядит так, что берешь крупный кредит и получаешь под него прибыль 9-23% через два месяца. Проценты очень серьезные.

Ну, если примитивно, то торговля выглядит так:

1. (Самое важное) в момент экспирации цена фьючерса = цене базового актива * лот фьючерса, т.е разница цен = 0

2. Справедливая (теоретическая) цена фьючерса на акции F = S * (1 + r * n/365) - DIV

          F   - теоретическая цена фьючерса

          S   - Цена СПОТ

          r   - Ставка ЦБ

          n   - кол-во дней до экспирации

          DIV -   Дивиденды

Зная текущую реальную цену фьючерса и текущую процентную ставку ЦБ мы видим как торгуется пара относительно ставки ЦБ

Если процент устраивает нас, то- входим в позиции и ждем экспирацию. В Экспирацию нам "насыпят" отрицательные акции, т.к фьючерсы были проданы,

т.е у нас останется 0 акций и 0 фьючерсов.

Вошли мы с разницей цен, допустим 100 руб., а вышли с разницей 0 руб. это и есть наша прибыль * на количество контрактов, которые мы покупали - продавали.

Вот так это работает, если примитивно.


Достоинства ТС

1. 100% безрисковая, если правильно пользоваться

2. Осваивать можно любые средства (ограничения только по ликвидности фьючерсов)

Недостатки

1. Прыгающая процентная ставка ЦБ

2. Сложность отслеживания дивидендов, ГОСА (Годовое Общее Собрание Акционеров)

 
prostotrader #:

Интересная ситуация складывается по паре GAZP - GAZR-12.23

Торгуется сейчас ~ 9% годовых

Если заплатят, то ~ 23% годовых

Можно совсем для дураков немного прояснить расчёты?

Сам газпром сейчас 180.32, фьюч декабря 18.615. Фьюч примерно на 3.2% дороже спота. Экспирация фьюча 21.12 через 4 месяца примерно. Ставка цб сейчас 12%, что через 4 месяца даёт порядка 4%. Разница в 3.2% и 4% не так велика и в пределах погрешности. Я не вижу тут 9%. Что я делаю не так?

Спасибо.
Файлы:
 
traveller00 #:
Можно совсем для дураков немного прояснить расчёты?

Сам газпром сейчас 180.32, фьюч декабря 18.615. Фьюч примерно на 3.2% дороже спота. Экспирация фьюча 21.12 через 4 месяца примерно. Ставка цб сейчас 12%, что через 4 месяца даёт порядка 4%. Разница в 3.2% и 4% не так велика и в пределах погрешности. Я не вижу тут 9%. Что я делаю не так?

Спасибо.

Цены рассчитывается с учетом DLong и DShort из таблицы КВИК "Купить/Продать"

SpotPrice:= ExpData.SpotData.SellPrice * ExpData.FutData.Lot * ExpData.RiskData.SpotDLong;
FutPrice:= ExpData.FutData.BuyPrice * ExpData.RiskData.FutDShort;

DLong и DShort устанавливает брокер по риск-параметрам утвержденными НКЦ

 

Для СПОТа тоже есть  DLong и DShort

А вообще, общую формулу расчетов, по понятным причинам, я приводить не буду.

Добавлено

О торговле руками или через МТ5 просто забудьте, не тратьте зря время.

 
prostotrader #:

Цены рассчитывается с учетом DLong и DShort из таблицы КВИК "Купить/Продать"

DLong и DShort устанавливает брокер по риск-параметрам утвержденными НКЦ

 

Для СПОТа тоже есть  DLong и DShort

А вообще, общую формулу расчетов, по понятным причинам, я приводить не буду.

Добавлено

О торговле руками или через МТ5 просто забудьте, не тратьте зря время.

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

Это из статистики по истории торгов уровень профита? или тоже связано со ставками ЦБ?

 
prostotrader #:

Ну, если примитивно, то торговля выглядит так:

1. (Самое важное) в момент экспирации цена фьючерса = цене базового актива * лот фьючерса, т.е разница цен = 0

2. Справедливая (теоретическая) цена фьючерса на акции F = S * (1 + r * n/365) - DIV

          F   - теоретическая цена фьючерса

          S   - Цена СПОТ

          r   - Ставка ЦБ

          n   - кол-во дней до экспирации

          DIV -   Дивиденды

Зная текущую реальную цену фьючерса и текущую процентную ставку ЦБ мы видим как торгуется пара относительно ставки ЦБ

Если процент устраивает нас, то- входим в позиции и ждем экспирацию. В Экспирацию нам "насыпят" отрицательные акции, т.к фьючерсы были проданы,

т.е у нас останется 0 акций и 0 фьючерсов.

Вошли мы с разницей цен, допустим 100 руб., а вышли с разницей 0 руб. это и есть наша прибыль * на количество контрактов, которые мы покупали - продавали.

Вот так это работает, если примитивно.

Но не так-то просто "взять с тарелки деньги"!

1. Нет нормального ПО для подобной торговли (только на всю голову тормознутый КВИК)

2. Написать программу под КВИК под силу совсем не многим.

Каждый эксперт это поток, а потоков, сейчас 138

TExpert = class(TThread)
    FFutName: string;
    FSpotName: string;
    FFutAccaunt: string;
    FSpotAccaunt: string;
    FFXAccaunt: string;
    FClient: string;
    FStopTrading: boolean;
    FTransBusy: boolean;
    FSettings: TExpertSettings;
    FFutVol: double;
    FSpotVol: double;
    FaSellLabel: TLabel;
    FaBuyLabel: TLabel;
    FClrLabel: TLabel;
    FMemo: TMemo;
    FECEnterLabel: TLabel;
    FECExitLabel: TLabel;
    FEFutLabel: TLabel;
    FESpotLabel: TLabel;
    FEMaxLabel: TLabel;
    FEMinLabel: TLabel;
    FECurDeltaLabel: TLabel;
    FECBLabel: TLabel;
    FEEntLabel: TLabel;
    FEExitLabel: TLabel;
    FEDivLabel: TLabel;
    FEMCntLabel: TLabel;
    FEAvlLabel: TLabel;
    FECurDivLabel: TLabel;
    FEHandle: THandle;
    FMaxValue: Double;
    FMinValue: Double;
    FOrder: EntityNumber;
    FTransAction: TTRansID;
    FTransID: Dword;
    FTrRes: long;
    FExCode: long;
    FTCode: long;
    FRepMess: LPCSTR;
    FExpData: TExpertData;
    FDllConn: boolean;
    FQConn: boolean;
    FWrongData: TWrongData;
    FVolume: Quantity;
    FaSell: Long;
    FInData: TDataBuffer;
    FMustSpotVol: double;
    FinProc: double;
    FoutProc: double;
    FinOrdProc: double;
    FoutOrdProc: double;
    FCanBuy: double;
    FCurDelta: double;
    FCurDiv: double;
    FMemoStr: string;
    FStBtn: TBitBtn;
    FExitEvent: TSimpleEvent;
    FTickEvent: TSimpleEvent;
    FTradeEvent: TSimpleEvent;
    FErrorEvent: TSimpleEvent;
    FEvents: TWOHandleArray;
    FEnterOrder: TPendingOrder;
    FExitOrder: TPendingOrder;
    FValidData: integer;
    FSpotBusy: boolean;
    FTransDataType: integer;
    FPosNum: integer;
    FBuff: PDataBuffer;
 //   FDoOnTrade: boolean;
    private
      procedure OnTick();
      procedure OnTrade();
      procedure SetStopBtn();
      procedure UpdMemo();
      function CheckPosEqual(): integer;
      function CalcProc(var inVal, outVal, CBuy, aDelta, Cdivs: double): boolean;
      function PositionState(): POS_STATE;
      function GetFutInVolume(const aVol: double): double;
      function CheckMoney(const vol: double; var CurZalog: double): double;
      procedure SendOrder(const dir: integer; const f_price: double; const qnty: double);
      function CheckFutPrice(const aPrice: double): boolean;
      function GetTransID(): Long;
      function GetFutOutVolume(const aVol: double): double;
      function UpdExpertData(): boolean;
      procedure UpdLabels();
      procedure SetEnterOrder(const Price: double; const Qnty: double);
      procedure SetExitOrder(const Price: double; const Qnty: double);
      procedure RemoveEnterOrder();
      procedure RemoveExitOrder();
    protected
      procedure Execute; override;
    public
      constructor Create(const val: boolean);
      destructor Destroy(); override;
//---
   //   procedure OnData(Data: PDataBuffer);
      function CheckTime(var is_rem_order: boolean): boolean;
      procedure ErrConnSet(const SetStop: boolean);
      procedure OrdDone(const market: integer);
//---
   // property DoOnTrade: boolean read FDoOnTrade;
    property Buff: PDataBuffer read FBuff;
    property PosNum: integer read FPosNum;
    property SpotBusy: boolean read FSpotBusy;
    property TransDataType: integer read FTransDataType;
    property ValidData: integer read FValidData;
    property ClrLabel: TLabel read FClrLabel;
    property ECEnterLabel: TLabel read FECEnterLabel;
    property ECExitLabel: TLabel read FECExitLabel;
    property EFutLabel: TLabel read FEFutLabel;
    property ESpotLabel: TLabel read FESpotLabel;
    property EMaxLabel: TLabel read FEMaxLabel;
    property EMinLabel: TLabel read FEMinLabel;
    property ECurDeltaLabel: TLabel read FECurDeltaLabel;
    property ECBLabel: TLabel read FECBLabel;
    property EEntLabel: TLabel read FEEntLabel;
    property EExitLabel: TLabel read FEExitLabel;
    property EDivLabel: TLabel read FEDivLabel;
    property EMCntLabel: TLabel read FEMCntLabel;
    property EAvlLabel: TLabel read FEAvlLabel;
    property ECurDivLabel: TLabel read FECurDivLabel;
    property aSellLabel: TLabel read FaSellLabel;
    property aBuyLabel: TLabel read FaBuyLabel;
    property inOrdProc: double read FinOrdProc;
    property outOrdProc: double read FoutOrdProc;
    property EnterOrder: TPendingOrder read FEnterOrder;
    property ExitOrder: TPendingOrder read FExitOrder;
    property ExitEvent: TSimpleEvent read FExitEvent;
    property TickEvent: TSimpleEvent read FTickEvent;
    property TradeEvent: TSimpleEvent read FTradeEvent;
    property ErrorEvent: TSimpleEvent read FErrorEvent;
    property Events: TWOHandleArray read FEvents;
    property StBtn: TBitBtn read FStBtn;
    property MemoStr: string read FMemoStr;
    property CurDelta: double read FCurDelta;
    property CurDiv: double read FCurDiv;
    property inProc: double read FinProc;
    property outProc: double read FoutProc;
    property CanBuy: double read FCanBuy;
    property MustSpotVol: double read FMustSpotVol;
    property InData: TDataBuffer read FInData;
    property aSell: long read FaSell;
    property Volume: Quantity read FVolume;
    property WrongData: TWrongData read FWrongData;
    property TransBusy: boolean read FTransBusy;
    property StopTrading: boolean read FStopTrading;
    property Settings: TExpertSettings read FSettings;
    property FutVol: double read FFutVol;
    property MaxValue: double read FMaxValue;
    property MinValue: double read FMinValue;
    property SpotVol: double read FSpotVol;
    property Memo: TMemo read FMemo;
    property EHandle: THandle read FEHandle;
    property Order: EntityNumber read FOrder;
    property TransAction: TTRansID read FTransAction;
    property TransID: Dword read FTransID;
    property TrRes: long read FTrRes;
    property ExCode: long read FExCode;
    property TCode: long read FTCode;
    property RepMess: LPCSTR read FRepMess;
    property ExpData: TExpertData read FExpData;
    property FutName: string read FFutName;
    property SpotName: string read FSpotName;
    property FutAccaunt: string read FFutAccaunt;
    property SpotAccaunt: string read FSpotAccaunt;
    property FXAccaunt: string read FFXAccaunt;
    property Client: string read FClient;
    property DllConn: boolean read FDllConn;
    property QConn: boolean read FQConn;
  end;

А потоками нужно управлять и синхронизировать.

3. 99% людей, которые крутятся здесь не нужна долгая и не очень доходная в их понимании торговля, гораздо "проще" вложить 100$, а на завтра проснуться "миллионером"

4. Есть свои тонкости и особенности(дивиденды, ГОСА и пр.), позволяющее зарабатывать, а это приходит с опытом.

Добавлено

Достоинства ТС

1. 100% безрисковая, если правильно пользоваться

2. Осваивать можно любые средства (ограничения только по ликвидности фьючерсов)

Недостатки

1. Прыгающая процентная ставка ЦБ

2. Сложность отслеживания дивидендов, ГОСА (Годовое Общее Собрание Акционеров)

да.. глобальная ТС - надо посмотреть....
 
Roman Shiredchenko #:

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


Не понял, что Вы хотите спросить?

 
prostotrader #:

Не понял, что Вы хотите спросить?

какие условия выхода из позиций - спота лонг и фьюча на него в шорт?
 
Roman Shiredchenko #:
какие условия выхода из позиций - спота лонг и фьюча на него в шорт?

Все написано, читайте внимательно

 
prostotrader #:

Вот так это работает, если примитивно.

Спасибо. Понимание, как и во всем, должно прийти с опытом.

Просьба поделиться, какой потолок ликвидности у подобной ТС? И, соответственно, сколько можно выжать в абсолюте и относительно в год, если не отказываться от "гарантийности"?

 
fxsaber #:

Спасибо. Понимание, как и во всем, должно прийти с опытом.

Просьба поделиться, какой потолок ликвидности у подобной ТС? И, соответственно, сколько можно выжать в абсолюте и относительно в год, если не отказываться от "гарантийности"?

По идее не должно быть потолка, если стаканы фьючерсов не пустые.

Я больше 18 млн. не осваивал.

Год на год не приходится, но где-то в пределах 70-90% годовых получалось.

Если написать свою прогу, которая будет работать по протоколу FIX/FAST, то доходность можно поднять в разы.

Через КВИК фьючерсы исполняются 30-40 мс, а вот СРОТ 240-300 мс., соответственно % прибыли очень сильно падает.

Добавлено

В жеджирующих ТС архиважна скорость исполнения.

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