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

 
Yuriy Asaulenko :

그들이 증권 거래소에서 백 달러를 가지고 놀지 않는다는 것은 당연합니다.)

많은 사람들과 달리 나는 게임을 하지 않고 일 을 하거나 오히려 돈을 벌어요 :)

맞아요 사진은 지울게요...

 
Yuriy Asaulenko :

실제로 0과 같지 않습니다. 하지만 정말 작습니다.)


나는 전략에 대해 이야기했는데, 그것은 100% 위험이 없습니다 .

그러나 물론 내일 브로커가 문을 닫고 돈을 돌려주지 않을 수도 있습니다.

그리고 다른 놀라움이 나라에있을 수 있습니다 ...

 
prostotrader :

많은 사람들과 달리 나는 게임을 하지 않고 일 을 하거나 오히려 돈을 벌어요 :)

그들은 증권 거래소에서 놀고 있습니다.)) 증권 거래소에서는 정규직 직원만 일합니다.) 운동 선수도 놀고 좋은 돈을 벌 수 있습니다. 방해하지 않습니다.)

 
Yuriy Asaulenko :

그들은 증권 거래소에서 놀고 있습니다.)) 증권 거래소에서는 정규직 직원만 일합니다.) 운동 선수도 놀고 좋은 돈을 벌 수 있습니다. 방해하지 않습니다.)

내 개념에서 "놀이"는 배수를 의미하며 나를 위한 것이 아닙니다.

나는 " 나는 상인으로 일합니다 "라고 말하는 것을 선호합니다.

 
prostotrader :

내 개념에서 "놀이"는 배수를 의미하며 나를 위한 것이 아닙니다.

나는 " 나는 상인으로 일합니다 "라고 말하는 것을 선호합니다.

트레이더의 역할은 증권 거래소에서 플레이하는 것입니다.)

죄송하지만 이것은 용어입니다. 당신은 아무데도 가지 않습니다.)

 

diman1982 용

내일 나는 공식을 대체하고 작업을 확인할 것입니다. 모든 것이 정상이면

컴파일된(기성품) 표시기를 게시하겠습니다.

 //+------------------------------------------------------------------+
//|                                                    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 int     aBars    = 40 ;     //Мин. Баров на графике  
//---
struct MARKET_DATA
{
   int exp_day;
   double spot_ask;
   double spot_bid;
   double fut_ask;
   double fut_bid;
   double fut_lot;
   double go_sell;
};
//---
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, "-" );
     int str_size = StringLen (fut_name);
     if ((str_tire > 0 ) && (str_size > 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 ;
  ma_data.exp_day = GetExpiration( Symbol ());
//---
  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 );
//---  
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
// Custom indicator DeInit function                                  |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
   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.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()
{
//--- TODO ---------  
   return (
0);
}
//+------------------------------------------------------------------+
// Custom indicator Calc Out Value function                          |
//+------------------------------------------------------------------+
double CalcOutValue()
{
//--- TODO --------- 

   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 );
  }  
//---  
   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 ;
//--- return value of prev_calculated for next call
  event_cnt = rates_total;
   return (rates_total);
}
//+------------------------------------------------------------------+

추가됨

설정은 관세 오프너 "Investor+"에 해당합니다.

추가됨

통화를 거래하면 TOM을 사용할 수 있습니다 (밤 늦게까지 거래 할 수 있지만 이익 비율은 적습니다)

 
" prostotrader "가 설명한 전략을 기반으로 어드바이저를 그려 just2trade의 단일 테스트 계정에서 확인했습니다. 원칙적으로 모든 것은 콘탱고 선물 주식에서 작동합니다. 연간 8-12%. 필요한 사람이 있으면 코드가 트레일러에 있습니다. 기존 공백을 수정하는 중이었으므로 불필요한 것이 많이 있습니다. 실수가 있을 수 있습니다. 나는 당신이 입에서 선물 말을 보지 않는 것 같아요. ) 같은 이유로 알고리즘과 코드를 설명하지 않습니다. 우리는 그것을 선물 차트, symb - 주식, VM - 선물 유가 증권 비율, DayExp - 선물 만료일, "pDIVi>=12" - 연간 12%의 이익을 내는 항목에 넣습니다.
파일:
ST.txt  26 kb
 
Yuriy Asaulenko :

트레이더의 역할은 증권 거래소에서 플레이하는 것입니다.)

죄송하지만 이것은 용어입니다. 당신은 아무데도 가지 않을 것입니다.)

놀이와 일이란 무엇인가? 차이점은 무엇입니까?)
놀기 위해서는 일해야 하고, 노는 것은 같은 splrtsmen을 위한 일이다
 

diman1982 용

모든 것이 작동합니다


개인의 지표

 
prostotrader :

diman1982 용

모든 것이 작동 중입니다.


개인의 지표

사진에서 아주 강하게 올라올 것 같습니다