Danial Novikov (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Расчёт индекса РТС
 
Ребята, я написал простой индикатор рассчитывающий индекс РТС по методичке с сайта московской биржи, т.е. по формуле:

Постоянную Koef я подобрал экспериментально, таким образом, чтобы в момент присоединения индикатора к графику он совпадал с текущий биржевым индексом РТС (RTSI). Коэффициенты W, C, Q и N взяты из таблицы http://moex.com/a3006
Код индикатора вы видите в самом низу. Сам индикатор можно скачать по  ссылке http://www.fayloobmennik.net/4924847
Индикатор строит график только в текущий момент времени и по текущим ценам акций. И вот что из этого получается:

Свечной график - это индекс РТС, который предоставляет биржа, а зелёная линия это рассчитанный по моему алгоритму индикатор.
Скажите, пожалуйста, что я делаю не так и почему возникает рассогласование ?


Код
 Settings=
{
   Name = "RTSI",
   period = 1,
   line = 
   {
      {
         Name = "One",
         Color = RGB(128, 255, 0),
         Type = TYPE_LINE,
         Width = 3
      }
   }
}

function Init()
Koef = 7.17265984478 * 1000000000
k=0

C = {}                        --кол-во выпущенный акций
C[1] = 23673512900
C[2] = 850563255
C[3] = 21586948000
C[4] = 1000000000
C[5] = 94561355
C[6] = 158245476
C[7] = 35725994705
C[8] = 7701998235
C[9] = 3036306000
C[10] = 1,29605E+13
C[11] = 10598177817
C[12] = 2066413562
C[13] = 2178690700
C[14] = 147508500
C[15] = 1554875
C[16] = 2936015891
C[17] = 837718660
C[18] = 7364965630
C[19] = 2278636493
C[20] = 620000000
C[21] = 3,86255E+11
C[22] = 266774342
C[23] = 2669204301
C[24] = 242831469
C[25] = 2000000000
C[26] = 5993227240
C[27] = 9650000000
C[28] = 3032149962
C[29] = 420819943
C[30] = 150570662
C[31] = 29788012
C[32] = 129500000
C[33] = 660497344
C[34] = 63048706145
C[35] = 11174330000
C[36] = 1,27467E+12
C[37] = 103030215
C[38] = 124750000
C[39] = 43963773
C[40] = 1,044E+11
C[41] = 37792603
C[42] = 40534000
C[43] = 1,61079E+11
C[44] = 1110616299
C[45] = 993586094
C[46] = 179768227
C[47] = 416270745
C[48] = 11529538
C[49] = 282215500
C[50] = 34270159

K_free_float = {}                  --коэф-нт free-float
K_free_float[1] = 0.46
K_free_float[2] = 0.46
K_free_float[3] = 0.48
K_free_float[4] = 1
K_free_float[5] = 0.54
K_free_float[6] = 0.3
K_free_float[7] = 0.25
K_free_float[8] = 0.73
K_free_float[9] = 0.27
K_free_float[10] = 0.39
K_free_float[11] = 0.12
K_free_float[12] = 0.49
K_free_float[13] = 0.32
K_free_float[14] = 1
K_free_float[15] = 1
K_free_float[16] = 0.33
K_free_float[17] = 0.21
K_free_float[18] = 0.23
K_free_float[19] = 0.56
K_free_float[20] = 0.15
K_free_float[21] = 0.34
K_free_float[22] = 0.3
K_free_float[23] = 0.28
K_free_float[24] = 0.6
K_free_float[25] = 0.08
K_free_float[26] = 0.14
K_free_float[27] = 0.36
K_free_float[28] = 0.1
K_free_float[29] = 0.25
K_free_float[30] = 0.12
K_free_float[31] = 0.63
K_free_float[32] = 0.19
K_free_float[33] = 0.32
K_free_float[34] = 0.18
K_free_float[35] = 0.14
K_free_float[36] = 0.21
K_free_float[37] = 0.33
K_free_float[38] = 0.33
K_free_float[39] = 0.51
K_free_float[40] = 0.18
K_free_float[41] = 0.39
K_free_float[42] = 0.16
K_free_float[43] = 0.14
K_free_float[44] = 0.32
K_free_float[45] = 0.28
K_free_float[46] = 0.42
K_free_float[47] = 0.35
K_free_float[48] = 0.1
K_free_float[49] = 0.34
K_free_float[50] = 0.46


K_m = {}                     --коэф-нт ограничивающий вес акции
K_m[1] = 0.7442309
K_m[2] = 1
K_m[3] = 1
K_m[4] = 1
K_m[5] = 1
K_m[6] = 1
K_m[7] = 1
K_m[8] = 1
K_m[9] = 1
K_m[10] = 1
K_m[11] = 1
K_m[12] = 1
K_m[13] = 1
K_m[14] = 1
K_m[15] = 1
K_m[16] = 1
K_m[17] = 1
K_m[18] = 1
K_m[19] = 1
K_m[20] = 1
K_m[21] = 1
K_m[22] = 1
K_m[23] = 1
K_m[24] = 1
K_m[25] = 1
K_m[26] = 1
K_m[27] = 1
K_m[28] = 1
K_m[29] = 1
K_m[30] = 1
K_m[31] = 1
K_m[32] = 1
K_m[33] = 1
K_m[34] = 1
K_m[35] = 1
K_m[36] = 1
K_m[37] = 1
K_m[38] = 1
K_m[39] = 1
K_m[40] = 1
K_m[41] = 1
K_m[42] = 1
K_m[43] = 1
K_m[44] = 1
K_m[45] = 1
K_m[46] = 1
K_m[47] = 1
K_m[48] = 1
K_m[49] = 1
K_m[50] = 1

LastPrice = {}
return 1
end
  

function OnCalculate(index)
RTSI = 0
MC_n = 0 

table = getParamEx("TQBR", "GAZP", "LAST")
LastPrice[1] = table.param_value
table = getParamEx("TQBR", "LKOH", "LAST")
LastPrice[2] = table.param_value
table = getParamEx("TQBR", "SBER", "LAST")
LastPrice[3] = table.param_value
table = getParamEx("TQBR", "SBERP", "LAST")
LastPrice[4] = table.param_value
table = getParamEx("TQBR", "MGNT", "LAST")
LastPrice[5] = table.param_value
table = getParamEx("TQBR", "GMKN", "LAST")
LastPrice[6] = table.param_value
table = getParamEx("TQBR", "SNGS", "LAST")
LastPrice[7] = table.param_value
table = getParamEx("TQBR", "SNGSP", "LAST")
LastPrice[8] = table.param_value
table = getParamEx("TQBR", "NVTK", "LAST")
LastPrice[9] = table.param_value
table = getParamEx("TQBR", "VTBR", "LAST")
LastPrice[10] = table.param_value
table = getParamEx("TQBR", "ROSN", "LAST")
LastPrice[11] = table.param_value
table = getParamEx("TQBR", "MTSS", "LAST")
LastPrice[12] = table.param_value
table = getParamEx("TQBR", "TATN", "LAST")
LastPrice[13] = table.param_value
table = getParamEx("TQBR", "TATNP", "LAST")
LastPrice[14] = table.param_value
table = getParamEx("TQBR", "TRNFP", "LAST")
LastPrice[15] = table.param_value
table = getParamEx("TQBR", "URKA", "LAST")
LastPrice[16] = table.param_value
table = getParamEx("TQBR", "CHMF", "LAST")
LastPrice[17] = table.param_value
table = getParamEx("TQBR", "ALRS", "LAST")
LastPrice[18] = table.param_value
table = getParamEx("TQBR", "MOEX", "LAST")
LastPrice[19] = table.param_value
table = getParamEx("TQBR", "MFON", "LAST")
LastPrice[20] = table.param_value
table = getParamEx("TQBR", "HYDR", "LAST")
LastPrice[21] = table.param_value
table = getParamEx("TQBR", "YNDX", "LAST")
LastPrice[22] = table.param_value
table = getParamEx("TQBR", "RTKM", "LAST")
LastPrice[23] = table.param_value
table = getParamEx("TQBR", "RTKMP", "LAST")
LastPrice[24] = table.param_value
table = getParamEx("TQBR", "RUALR", "LAST")
LastPrice[25] = table.param_value
table = getParamEx("TQBR", "NLMK", "LAST")
LastPrice[26] = table.param_value
table = getParamEx("TQBR", "AFKS", "LAST")
LastPrice[27] = table.param_value
table = getParamEx("TQBR", "PGIL", "LAST")
LastPrice[28] = table.param_value
table = getParamEx("TQBR", "POLY", "LAST")
LastPrice[29] = table.param_value
table = getParamEx("TQBR", "BANE", "LAST")
LastPrice[30] = table.param_value
table = getParamEx("TQBR", "BANEP", "LAST")
LastPrice[31] = table.param_value
table = getParamEx("TQBR", "PHOR", "LAST")
LastPrice[32] = table.param_value
table = getParamEx("TQBR", "PIKK", "LAST")
LastPrice[33] = table.param_value
table = getParamEx("TQBR", "EONR", "LAST")
LastPrice[34] = table.param_value
table = getParamEx("TQBR", "MAGN", "LAST")
LastPrice[35] = table.param_value
table = getParamEx("TQBR", "FEES", "LAST")
LastPrice[36] = table.param_value
table = getParamEx("TQBR", "LSRG", "LAST")
LastPrice[37] = table.param_value
table = getParamEx("TQBR", "DIXY", "LAST")
LastPrice[38] = table.param_value
table = getParamEx("TQBR", "GCHE", "LAST")
LastPrice[39] = table.param_value
table = getParamEx("TQBR", "IRAO", "LAST")
LastPrice[40] = table.param_value
table = getParamEx("TQBR", "PHST", "LAST")
LastPrice[41] = table.param_value
table = getParamEx("TQBR", "AKRN", "LAST")
LastPrice[42] = table.param_value
table = getParamEx("TQBR", "RSTI", "LAST")
LastPrice[43] = table.param_value
table = getParamEx("TQBR", "AFLT", "LAST")
LastPrice[44] = table.param_value
table = getParamEx("TQBR", "TRMK", "LAST")
LastPrice[45] = table.param_value
table = getParamEx("TQBR", "MVID", "LAST")
LastPrice[46] = table.param_value
table = getParamEx("TQBR", "MTLR", "LAST")
LastPrice[47] = table.param_value
table = getParamEx("TQBR", "VSMO", "LAST")
LastPrice[48] = table.param_value
table = getParamEx("TQBR", "MSTT", "LAST")
LastPrice[49] = table.param_value
table = getParamEx("TQBR", "SVAV", "LAST")
LastPrice[50] = table.param_value

i=1
while (i <= 50) do
   MC_n = MC_n + LastPrice[i] * C[i] * K_free_float[i] * K_m[i]
   i = i+1
end

return (MC_n/Koef)
end


Функция CreateDataSource
 
Здравствуйте. Скажите, пожалуйста, почему у меня не работает функция CreateDataSource. По аналогии с этой статьёй я пишу в своём индикаторе:

ds1 = CreateDataSource("SPBFUT", "RIM5", INTERVAL_M1, "last")

а в результате получаю ошибку:

attempt to call global 'CreateDataSource' (a nil value)
Горячие клавиши и виртуальные кнопки для QPile
 
Я хотел бы сделать QPile-привод, который совершал бы сделку при нажатии горячей клавиши (пробел) или создавал бы какую-нибудь виртуальную кнопку на мониторе, при щелчке на которую открывалась бы сделка.

Скажите, это возможно?
Страницы: 1
Наверх