소품 거래 - 사기 또는 어떤 의미가 있습니까? - 페이지 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

모든 것이 작동 중입니다.


개인의 지표

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