Тема для начинающих писателей роботов.
----------------------------
Ранее на форуме я рассказывал как построить робота-эксперта на основе двух любых индикаторов отображаемых на графике.
---------------------------
В этой теме поясню как читать данные с индикатора быстро и просто.
------------------------
Напишем пример скрипта индикатора, который считывает значения индикатора moving в массив t и выводит на график значения индикатора смещенные на 0.1 в виде зеленых треугольников .
---------------------------
При этом сделаем так, чтобы индикатор не тратил время на считывание тиков, а читал значение индикатора один раз в момент появления новой свечи цены.
В моих роботах именно в этот момент и принимается решение о выставлении заявки.
Т е решение принимается в момент открытия новой свечи .
------------------------------
Если робот будет торговать на интервала 30 минут, то чтение индикатора будет происходить всего 1 раз в 30 минут именно на открытии новой свечи.

это результат:

----------------------------
Ранее на форуме я рассказывал как построить робота-эксперта на основе двух любых индикаторов отображаемых на графике.
---------------------------
В этой теме поясню как читать данные с индикатора быстро и просто.
------------------------
Напишем пример скрипта индикатора, который считывает значения индикатора moving в массив t и выводит на график значения индикатора смещенные на 0.1 в виде зеленых треугольников .
---------------------------
При этом сделаем так, чтобы индикатор не тратил время на считывание тиков, а читал значение индикатора один раз в момент появления новой свечи цены.
В моих роботах именно в этот момент и принимается решение о выставлении заявки.
Т е решение принимается в момент открытия новой свечи .
------------------------------
Если робот будет торговать на интервала 30 минут, то чтение индикатора будет происходить всего 1 раз в 30 минут именно на открытии новой свечи.
| Код |
|---|
Settings={ tag="moving", Name = '*nk_test'}
function OnCalculate(i)
if i==1 then i1=0; t={};
elseif i1~=i then local M=getNumCandles (Settings.tag);
if M>=i then x=getCandlesByIndex(Settings.tag,0,i1,1); if x then t[#t+1]=x[0].close end i1=i; end
end
i1=i; if #t>0 and t[#t]~=0 then return t[#t]+0.1; end
end
function Init()
local t={} Settings.line =t;
t[#t+1]={Name = "Bu",Color = RGB(0,255,0),Type = 10,Width = 3};
return #t;
end |
это результат: