FORTS : Pour aider les débutants - page 14

 
la question philosophique est de savoir si le verre est complètement vide ou si le verre est complètement transparent ;))
 
Quel pourcentage la bourse prend-elle comme commission ? Par exemple, sur le forex, l'option courante est de 20 par million = 0,002%.
 
fxsaber:
Quel pourcentage est pris par la bourse comme commission ? Par exemple, 20 par million = 0,002% est courant sur le marché des changes.
https://www.moex.com/s93

3. les frais d'échange et de compensation du marché des produits dérivés

C'est-à-dire que pour aujourd'hui, c'est approximativement : RTS - 9,3, Si - 1,2, PLT - 3,9 p par contrat. Si vous clôturez dans la même session, il n'y a pas de frais pour l'opération inverse.

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

3. la commission d'échange et de compensation du marché des produits dérivés

Merci. Apparemment, c'est écrit pour les avocats. Combien de pips sur le RTS ? -Je vois plus haut.

 
fxsaber:

Merci. Apparemment, c'est écrit pour les avocats. Combien de pips sur le RTS ? -Je vois plus haut.

Et plus la commission de courtage.

 
fxsaber:
Quel est le pourcentage de la commission prélevée par la bourse ? Par exemple, sur le marché des changes, 20 par million = 0,002 %.

J'avais l'habitude d'écrire du code comme ça pour moi-même à une époque. Ça a marché à l'époque. Peut-être que les choses ont changé maintenant.

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;

Il restitue la commission en argent. Dans le pire des cas, lorsque pour les deux transactions entrée+sortie il faudra payer

2*GetFuturesCommission(SymbName)

À la fin, elle est multipliée par le nombre de transactions pour obtenir la commission totale pour l'ensemble de l'intervalle de négociation.

Vous pouvez comparer en consultant les spécifications du contrat, par exemple https://www.moex.com/ru/contract.aspx?code=RTS-3.21.

 
traveller00:

J'avais l'habitude d'écrire du code comme ça pour moi-même à une époque. Ça a marché à l'époque. Peut-être que les choses ont changé maintenant.

Il restitue la commission en argent. Dans le pire des cas, lorsque pour les deux transactions entrée+sortie il faudra payer

À la fin, elle est multipliée par le nombre de transactions pour obtenir la commission totale pour l'ensemble de l'intervalle de négociation.

Vous pouvez comparer si vous jetez un coup d'œil aux spécifications du contrat, par exemple https://www.moex.com/ru/contract.aspx?code=RTS-3.21.

Merci pour les commentaires constructifs !

Raison: