FORTS: Per aiutare i principianti - pagina 14

 
la questione filosofica è se il bicchiere è completamente vuoto o il bicchiere è completamente limpido ))
 
Che percentuale prende lo scambio come commissione? Per esempio, sul forex, l'opzione comune è 20 per milione = 0,002%.
 
fxsaber:
Quale percentuale viene presa dallo scambio come commissione? Per esempio, 20 per milione = 0,002% è comune sul forex.
https://www.moex.com/s93

3. le commissioni di scambio e compensazione del mercato dei derivati

Cioè, per oggi è circa: RTS - 9,3, Si - 1,2, PLT - 3,9 p per contratto. Se si chiude nella stessa sessione, non ci sono spese per il reverse trade.

Московская Биржа - Рынки
Московская Биржа - Рынки
  • www.moex.com
Тарифы. Участие в торгах на Срочном рынке ПАО Московская Биржа и регистрация в качестве Расчетной фирмы Взнос в Гарантийный фонд Биржевой сбор (с 02.10.2017) Клиринговый сбор и клиринговые тарифы Маркетинговая программа Сборы за Транзакции Сбор за Календарные спреды Информационно-техническое обслуживание срочного рынка С 19:05 мск 01 ноября 2018 года вступил в силу новый расчет оборотной комиссии с разделением на биржевую и клиринговую составляющие. Внешние интерфейсы остаются без изменений.
 
JRandomTrader:
https://www.moex.com/s93

3. la commissione di scambio e compensazione del mercato dei derivati

Grazie. A quanto pare è scritto per gli avvocati. Quanti pips sul RTS? -Vedo sopra.

 
fxsaber:

Grazie. A quanto pare è scritto per gli avvocati. Quanti pips sul RTS? -Vedo più in alto.

E più la commissione di intermediazione.

 
fxsaber:
Qual è la percentuale della commissione applicata dallo scambio? Per esempio, nel mercato forex 20 per milione = 0,002%.

Una volta scrivevo codice come questo per me stesso. Allora funzionava. Forse ora le cose sono cambiate.

const string CurrencyFutures[]={"AUDU","ED","Eu","GBPU","Si","UCAD","UCHF","UJPY"};
const string PercentFutures[]={"1MFR","RUON"};
const string IndexFutures[]={"MIX","MXI","RTS","RVI","U500"};
const string CommoditiesFutures[]={"ALMN","BR","CL","Co","CU","GLD","GOLD","Nl","PLD","PLT","SILV","SLV","SUGR","Zn"};

template <typename T>
bool IsEntityInArray(const T &Array[],const T &Value)
{
  for(int i=ArraySize(Array)-1;i>=0;--i)
  {
    if(Array[i]==Value)
      return true;
  }
  return false;
}

bool IsStringInArray(const string &Array[],const string Value)
{
  return IsEntityInArray(Array,Value);
}

double GetBaseTutFee(const string &PureSymbName)
{
  if(IsStringInArray(CurrencyFutures,PureSymbName))
    return 0.00154/100;
  if(IsStringInArray(PercentFutures,PureSymbName))
    return 0.00550/100;
  if(IsStringInArray(IndexFutures,PureSymbName))
    return 0.00220/100;
  if(IsStringInArray(CommoditiesFutures,PureSymbName))
    return 0.00440/100;
  return 0.00660/100;
}

double GetLastPrice(const string SymbName)
{
  double Result=SymbolInfoDouble(SymbName,SYMBOL_BID);
  if(Result!=0)
    return Result;

  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(SymbName,OldTicks,COPY_TICKS_ALL);
  //workaround for custom symbols
  if(OldTicksCount==-1)
    OldTicksCount=CopyTicksRange(SymbName,OldTicks,COPY_TICKS_ALL,(TimeCurrent()-60*60*24*7)*1000);
  for(int i=OldTicksCount-1;i>=0;--i)
  {
    if(OldTicks[i].bid!=0)
      return OldTicks[i].bid;
  }
  return 0;
}

double GetSymbolTickSize(const string &SymbName)
{
  return SymbolInfoDouble(SymbName,SYMBOL_TRADE_TICK_SIZE);
}

double GetFuturesCommission(const string &SymbName)
{
  string PureSymbName=StringSubstr(SymbName,0,StringFind(SymbName,"-"));
  double BaseTutFee=GetBaseTutFee(PureSymbName);
  double FutPrice=GetLastPrice(SymbName);
  double Wf=SymbolInfoDouble(SymbName,SYMBOL_TRADE_TICK_VALUE);
  double Rf=GetSymbolTickSize(SymbName);
  return 0.74+NormalizeDouble(NormalizeDouble(FutPrice*NormalizeDouble(Wf/Rf,5),2)*BaseTutFee/2,2);
}



  long SymbCalcMode=GetSymbolCalcMode(SymbName);
  bool IsSymbFutures=SymbCalcMode==SYMBOL_CALC_MODE_FUTURES || SymbCalcMode==SYMBOL_CALC_MODE_EXCH_FUTURES || SymbCalcMode==SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS;

  if(IsSymbFutures)
    Multiplier=2*GetFuturesCommission(SymbName);
  return Multiplier*Trades;

Restituisce la commissione in denaro. Prende il caso peggiore, quando per entrambi i trade entry+exit si dovrà pagare

2*GetFuturesCommission(SymbName)

Alla fine viene moltiplicato per il numero di scambi per ottenere la commissione totale per l'intero intervallo di trading.

Si può confrontare se si dà un'occhiata alle specifiche del contratto, ad esempio https://www.moex.com/ru/contract.aspx?code=RTS-3.21

 
traveller00:

Una volta scrivevo codice come questo per me stesso. Allora funzionava. Forse ora le cose sono cambiate.

Restituisce la commissione in denaro. Prende il caso peggiore, quando per entrambi i trade entry+exit si dovrà pagare

Alla fine viene moltiplicato per il numero di scambi per ottenere la commissione totale per l'intero intervallo di trading.

Si può confrontare se si dà un'occhiata alle specifiche del contratto, ad esempio https://www.moex.com/ru/contract.aspx?code=RTS-3.21

Grazie per il feedback costruttivo!

Motivazione: