소품 거래 - 사기 또는 어떤 의미가 있습니까? - 페이지 14

 
Aleksey Vyazmikin :

나는 당신이 지표에서 이미 이 문제를 해결했다고 생각했습니다.

아니, 두뇌가 충분하지 않습니다 ...

 
prostotrader :

아니, 두뇌가 충분하지 않습니다 ...

이 수동적 침략이 무엇과 연결되어 있는지는 분명하지 않습니다 ...

 

재구매를 모니터링 할 수 있도록 마지막 현물 가격을 추가했습니다.

 //+------------------------------------------------------------------+
//|                                                    SPOTvsFUT.mq5 |
//|                                     Copyright 2019, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, prostotrader"
#property link        "https://www.mql5.com"
#property version    "1.00"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots    2
//--- plot Label1
#property indicator_label1    "Input %"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrLime
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- plot Label2
#property indicator_label2    "Output %"
#property indicator_type2    DRAW_LINE
#property indicator_color2    clrAqua
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1
//---
#define on_call - 111
#define YEAR     365
//---
input double StCB     = 7.5 ;     //Ставка ЦБ(%)
input double BBSpot   = 0.025 ;   //Брокер и Биржа СПОТ(%)
input double BrFut    = 0.24 ;   //Брокер ФОРТС(руб.)
input double BiFut    = 0.0066 ; //Биржа ФОРТС(%) 
input double BrExp    = 1.0 ;     //Брокер за эксп.(руб.) 
input double BiExp    = 2.0 ;     //Биржа за зксп.(руб.)
input double Div      = 0 ;       //Дивиденты(руб./акция)
input double NalogDiv = 13 ;     //Налог на дивиденты(%)
input double NalDepo  = 175 ;     //Комиссия депозитария (руб./мес.)
input long    NFut     = 100 ;     //Передп. кол-во фьючерсов к продаже
input int     aBars    = 30 ;     //Мин. Баров на графике  
input double pSpot    = 100 ;     //Цена СПОТ для вечернего мониторинга 
//---
struct MARKET_DATA
{
   int exp_day;
   double spot_ask;
   double spot_bid;
   double fut_ask;
   double fut_bid;
   double fut_lot;
   double go_sell;
   double go_buy;
};
//---
string spot_symbol;
int event_cnt;
MARKET_DATA ma_data;
double inBuff[], outBuff[];
bool spot_book, fut_book;

//+------------------------------------------------------------------+
//| Custom indicator Get Spot name function                          |
//+------------------------------------------------------------------+
string GetSpot( const string fut_name)
{
   string Spot = "" ; 
   if (fut_name != "" )
  {
     int str_tire = StringFind (fut_name, "-" );
     if (str_tire > 0 )
    {
      Spot = StringSubstr (fut_name, 0 , str_tire);
       if (Spot == "GAZR" ) Spot = "GAZP" ; else
       if (Spot == "SBRF" ) Spot = "SBER" ; else
       if (Spot == "SBPR" ) Spot = "SBERP" ; else
       if (Spot == "TRNF" ) Spot = "TRNFP" ; else
       if (Spot == "NOTK" ) Spot = "NVTK" ; else
       if (Spot == "MTSI" ) Spot = "MTSS" ; else
       if (Spot == "GMKR" ) Spot = "GMKN" ; else
       if (Spot == "SNGR" ) Spot = "SNGS" ; else
       if (Spot == "Eu" )   Spot = "EURRUB_TOD" ; else
       if (Spot == "Si" )   Spot = "USDRUB_TOD" ; else
       if (Spot == "SNGP" ) Spot = "SNGSP" ;
    }
  }  
   return (Spot);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{
   int t_bars = Bars ( Symbol (), PERIOD_CURRENT );
   if (t_bars < (aBars + 2 ))
  {
     Alert ( "Не хватает баров на графике!" );
     return ( INIT_FAILED );
  }
  event_cnt = 0 ;
//---
  spot_symbol = GetSpot( Symbol ());
   if (spot_symbol == "" )
  {
     Alert ( "Не получено имя СПОТа!" );
     return ( INIT_FAILED );
  }
   else
  {
     if ( SymbolSelect (spot_symbol, true ) == false )
    {
       Alert ( "Нет смвола с именем " + spot_symbol + "!" );
       return ( INIT_FAILED );
    }
     else
    {
      spot_book = MarketBookAdd (spot_symbol);
       if (spot_book == false )
      {
         Alert ( "Не добавлен стакан СПОТа!" );
         return ( INIT_FAILED );
      }
    }
  }
  fut_book = MarketBookAdd ( Symbol ());
   if (spot_book == false )
  {
     Alert ( "Не добавлен стакан фьючерса!" );
     return ( INIT_FAILED );
  }   
   IndicatorSetInteger ( INDICATOR_DIGITS , 2 );
   IndicatorSetString ( INDICATOR_SHORTNAME , "SPOTvsFUT" );
//---  
   SetIndexBuffer ( 0 , inBuff, INDICATOR_DATA );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (inBuff, true ); 
  
   SetIndexBuffer ( 1 , outBuff, INDICATOR_DATA );
   PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , EMPTY_VALUE );
   ArraySetAsSeries (outBuff, true );
  
     int window= ChartWindowFind ( ChartID (), "SPOTvsFUT" );
   ObjectCreate ( ChartID (), "SPOTvsFUT_1" , OBJ_LABEL ,window, 0 , 0 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_1" , OBJPROP_YDISTANCE , 15 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_1" , OBJPROP_XDISTANCE , 5 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_1" , OBJPROP_COLOR , clrLime );
   ObjectSetString ( ChartID (), "SPOTvsFUT_1" , OBJPROP_TEXT , "Input: 0" );  

   ObjectCreate ( ChartID (), "SPOTvsFUT_2" , OBJ_LABEL ,window, 0 , 0 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_2" , OBJPROP_YDISTANCE , 30 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_2" , OBJPROP_XDISTANCE , 5 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_2" , OBJPROP_COLOR , clrAqua );
   ObjectSetString ( ChartID (), "SPOTvsFUT_2" , OBJPROP_TEXT , "Output: 0" );
  
   ObjectCreate ( ChartID (), "SPOTvsFUT_3" , OBJ_LABEL ,window, 0 , 0 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_3" , OBJPROP_YDISTANCE , 45 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_3" , OBJPROP_XDISTANCE , 5 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_3" , OBJPROP_COLOR , clrWhite );
   ObjectSetString ( ChartID (), "SPOTvsFUT_3" , OBJPROP_TEXT , "Delta: 0" );
  
   ObjectCreate ( ChartID (), "SPOTvsFUT_4" , OBJ_LABEL ,window, 0 , 0 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_4" , OBJPROP_YDISTANCE , 60 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_4" , OBJPROP_XDISTANCE , 5 );
   ObjectSetInteger ( ChartID (), "SPOTvsFUT_4" , OBJPROP_COLOR , clrWhite );
   ObjectSetString ( ChartID (), "SPOTvsFUT_4" , OBJPROP_TEXT , "Night Delta: 0" );
//---  
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
// Custom indicator DeInit function                                  |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
   ObjectDelete ( ChartID (), "SPOTvsFUT_1" );
   ObjectDelete ( ChartID (), "SPOTvsFUT_2" );
   ObjectDelete ( ChartID (), "SPOTvsFUT_3" );
   ObjectDelete ( ChartID (), "SPOTvsFUT_4" );
   if (fut_book == true ) MarketBookRelease ( Symbol ());
   if (spot_book == true ) MarketBookRelease (spot_symbol);
   if (reason == REASON_INITFAILED )
  {
     Print ( "Индикатор удалён! Причина - ошибка инициализации." );
     string short_name = ChartIndicatorName ( ChartID (), 1 , 0 );
     ChartIndicatorDelete ( ChartID (), 1 , short_name); 
  }
}
//+------------------------------------------------------------------+
//| Custom indicator Get expiration  function                        |
//+------------------------------------------------------------------+   
int GetExpiration( const string aSymbol)
{
   MqlDateTime ExpData, CurData;
   datetime expir_time = datetime ( SymbolInfoInteger (aSymbol, SYMBOL_EXPIRATION_TIME ));
   TimeToStruct (expir_time, ExpData);
   TimeTradeServer (CurData);
   if (ExpData.year != CurData.year)
  {
     return (YEAR * (ExpData.year - CurData.year) - CurData.day_of_year + ExpData.day_of_year);
  }
   else
  {
     return (ExpData.day_of_year - CurData.day_of_year);
  }
}
//+------------------------------------------------------------------+
// Custom indicator On book event function                           |
//+------------------------------------------------------------------+
void OnBookEvent ( const string & symbol)
{
   if ((symbol == Symbol ()) || (symbol == spot_symbol))
  {
    ma_data.exp_day  = GetExpiration( Symbol ());
    ma_data.fut_ask  = SymbolInfoDouble ( Symbol (), SYMBOL_ASK );
    ma_data.fut_bid  = SymbolInfoDouble ( Symbol (), SYMBOL_BID );
    ma_data.fut_lot  = SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_CONTRACT_SIZE );
    ma_data.go_sell  = SymbolInfoDouble ( Symbol (), SYMBOL_MARGIN_INITIAL );
    ma_data.go_buy  = SymbolInfoDouble ( Symbol (), SYMBOL_MARGIN_MAINTENANCE );
    ma_data.spot_ask = SymbolInfoDouble (spot_symbol, SYMBOL_ASK );
    ma_data.spot_bid = SymbolInfoDouble (spot_symbol, SYMBOL_BID );
//---    
     double price[]; 
     OnCalculate (event_cnt, event_cnt, on_call, price); 
  }
}
//+------------------------------------------------------------------+
// Custom indicator Calc In Value function                           |
//+------------------------------------------------------------------+
double CalcInValue()
{
   double depocomiss = NalDepo/(NFut * ma_data.fut_lot);
   double comiss = ma_data.spot_ask * ma_data.fut_lot * BBSpot/ 100 * 2 +
                  BrFut + BiFut * ma_data.fut_bid/ 100 + BrExp + BiExp;
   double divNalog = Div/ 100 * 13 ;
   double divWaite = 0 ;
   if (Div > 0 ) divWaite = ((Div - divNalog) * ma_data.fut_lot * 13 / 100 / 365 * 20 );
  
   return ( 0 );
}
//+------------------------------------------------------------------+
// Custom indicator Calc Out Value function                          |
//+------------------------------------------------------------------+
double CalcOutValue()
{
   double comiss = ma_data.spot_bid * ma_data.fut_lot * BBSpot/ 100 +
                   BrFut + BiFut * ma_data.fut_ask/ 100 ;
   return ( 0 );

}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
{
   if (prev_calculated == 0 )
  {
     ArrayInitialize (inBuff, EMPTY_VALUE );
     ArrayInitialize (outBuff, EMPTY_VALUE );
    inBuff[ 1 ] = - 50 ;
    outBuff[ 1 ] = 50 ;
  }  
//---  
   if (begin == on_call)
  {
     for ( int i = aBars - 1 ; i > 0 ; i--)
    {
      inBuff[i] = inBuff[i - 1 ];
      outBuff[i] = outBuff[i - 1 ];
    }
    inBuff[ 0 ] = CalcInValue(); 
    outBuff[ 0 ] = CalcOutValue();
  }
   else
  {
    inBuff[ 0 ] = inBuff[ 1 ];
    outBuff[ 0 ] = outBuff[ 1 ];
  }
  inBuff[aBars] = EMPTY_VALUE ;
  outBuff[aBars] = EMPTY_VALUE ;
   ObjectSetString ( ChartID (), "SPOTvsFUT_1" , OBJPROP_TEXT , "Input: " + DoubleToString (inBuff[ 0 ], 2 ));
   ObjectSetString ( ChartID (), "SPOTvsFUT_2" , OBJPROP_TEXT , "Output: " + DoubleToString (outBuff[ 0 ], 2 ));
   ObjectSetString ( ChartID (), "SPOTvsFUT_3" , OBJPROP_TEXT , "Delta: " + DoubleToString (ma_data.fut_bid - (ma_data.spot_ask * ma_data.fut_lot), 0 ));
   ObjectSetString ( ChartID (), "SPOTvsFUT_4" , OBJPROP_TEXT , "Night Delta: " + DoubleToString (ma_data.fut_bid - (pSpot * ma_data.fut_lot), 0 ));
   ChartRedraw ( ChartID ());
//--- return value of prev_calculated for next call
  event_cnt = rates_total;
   return (rates_total);
}
//+------------------------------------------------------------------+
 
prostotrader :

오늘날 Sberbank에 따르면 위험 은 거의 없지만 스프레드를 늘리는 고전적인 상황이 있습니다.

내가 이해하는 한, 상황은 오늘날과 동일합니까? 저것들. 어제 젠장. 또한 그 자리가 저축에 폐쇄된 후 100+ 포인트가 올라갔습니다.

이제 어제 종가 영역에서 개장부터 주식을 살 수 있었는지 확인해보자.

추가됨:

예, 그럴 수 있습니다.

 

시장이 열리기 전 한 잔 - 취한 것:


 
주제의 주요 주제로 돌아가기: borsatrading은 Forex 스타일의 사기입니다.
사실, 그들은 어떤 자본도 제공하지 않고 MOEX 선물에서 포지션을 여는 데 필요한 GO의 20배 크기만 줄입니다(FAQ 섹션 ' 나에게 사용 가능한 자본의 양, 확인 방법' 참조)
 
Sergey Lebedev :
주제의 주요 주제로 돌아가기: borsatrading은 Forex 스타일의 사기입니다.
사실, 그들은 어떤 자본도 제공하지 않고 MOEX 선물에서 포지션을 여는 데 필요한 GO의 20배 크기만 줄입니다(FAQ 섹션 ' 나에게 사용 가능한 자본의 양, 확인 방법' 참조)

"자본을 제공하지 않고 GO의 크기를 20x로 줄입니다"라고 작성하여 자신과 모순된다는 것을 이해합니까? 실제로, 그들은 거래 시 GO로 동결되는 대신 다른 도구에서 작동하도록 만들 수 있는 자금에 대한 부담을 줄입니다.

 

그건 그렇고, 아마도 Quek의 MT5에서 거래할 수 있기를 원하는 관심 있는 사람들이 있을 것입니다. 저는 이러한 목적을 위해 함께 거래 클래스를 주문하고 협력할 것을 제안합니다.

일반적으로 나는 이미 일자리를 얻었지만 아직 출연자를 선택할 필요가없고 돈을 많이 원하기 때문에 이것이 제안입니다.

 
Aleksey Vyazmikin :

그건 그렇고, 아마도 Quek의 MT5에서 거래할 수 있기를 원하는 관심 있는 사람들이 있을 것입니다. 저는 이러한 목적을 위해 함께 거래 클래스를 주문하고 협력할 것을 제안합니다.

왜 그러한 어려움이 있습니까? Quek에서는 매우 잘 거래되었습니다. 원하시면 두피도 가능합니다. 그리고 자동차도 만들 수 있습니다. 상당히 민첩합니다.
 
Aleksey Vyazmikin :

그건 그렇고, 아마도 Quek의 MT5에서 거래를 할 수 있기를 원하는 관심있는 사람들이있을 것입니다. 그러면 나는이 목적을 위해 함께 거래 클래스를 주문하고 협력 할 것을 제안합니다.

왜 그러한 어려움이 있습니까? Quek에서는 매우 잘 거래되었습니다. 원하시면 두피도 가능합니다. 그리고 자동차도 만들 수 있습니다. 상당히 민첩합니다.