Добрый день.
Только начинаю программировать, нужна ваша поддержка.
Пишу программу, чтобы робот выводил сообщение, когда открывается позиция.
Пока вот такой код. Сообщения не выдаёт, ошибки тоже не показывает. Что здесь не верно?...
Идентификатор в графике прописан.
Только начинаю программировать, нужна ваша поддержка.
Пишу программу, чтобы робот выводил сообщение, когда открывается позиция.
Пока вот такой код. Сообщения не выдаёт, ошибки тоже не показывает. Что здесь не верно?...
Идентификатор в графике прописан.
| Код |
|---|
MyAccount="---" -- сюда вбить свой код клиента; или вбить в настройки индикатора в квике
class_code="SPBFUT"
Emit="RIZ8"
loss=100
loss_prosk=0
profit=110 -- количество пунктов от места входа в сделку до тейк профита; или вбить в настройки индикатора в квике
profit_otstup=0 -- отступ от максимума (параметр тейк-профита); или вбить в настройки индикатора в квике
profit_prosk=10 -- защитный спред (параметр тейк-профита); или вбить в настройки индикатора в квике
is_run=true
function main()
while is_run do
Body()
end
end
function OnStop(stop_flag)
is_run=false
stop_flag=1
end
function Body()
function PosNowFunc(emit,account)
local nSize = getNumberOf("futures_client_holding") --количество строк в таблице "Ограничения по клиентским счетам"
if (nSize~=nil)then
for i = 0, nSize-1 do
local row = getItem("futures_client_holding",i)
if(row~=nil and row.sec_code == emit and row.trdaccid == account) then --больше одной строки не должно быть для каждого инструмента
return tonumber(row.totalnet) --значение позиции на фортс
end
end
end
return 0
end
local PosNow = PosNowFunc(Emit,MyAccount)
local N=getNumCandles("M1")
t,n,l=getCandlesByIndex("M1", 0, N-6, 6) --возвращает информацию о 5 последних свечах на графике с определённым идентификатором.
if PosNow>0 then
if t[5].low<t[4].low
and t[5].low<t[3].low
and t[5].low<t[2].low
and t[5].low<t[1].low
and t[5].low<t[0].low
then low_high=(t[5].low)-10
message("Стоп-лосс будет установлен по цене ".. tostring ((t[5].low)-10).."!")
elseif t[4].low<t[5].low
and t[4].low<t[3].low
and t[4].low<t[2].low
and t[4].low<t[1].low
and t[4].low<t[0].low
then low_high=(t[4].low)-10
message("Стоп-лосс будет установлен по цене ".. tostring ((t[4].low)-10).."!")
elseif t[3].low<t[5].low
and t[3].low<t[4].low
and t[3].low<t[2].low
and t[3].low<t[1].low
and t[3].low<t[0].low
then low_high=(t[3].low)-10
message("Стоп-лосс будет установлен по цене ".. tostring ((t[3].low)-10).."!")
elseif t[2].low<t[5].low
and t[2].low<t[4].low
and t[2].low<t[3].low
and t[2].low<t[1].low
and t[2].low<t[0].low
then low_high=(t[2].low)-10
message("Стоп-лосс будет установлен по цене ".. tostring ((t[2].low)-10).."!")
elseif t[1].low<t[5].low
and t[1].low<t[4].low
and t[1].low<t[3].low
and t[1].low<t[2].low
and t[1].low<t[0].low
then -- then low_high=(t[1].low)-10
message("Стоп-лосс будет установлен по цене ".. tostring ((t[1].low)-10).."!")
elseif t[0].low<t[5].low
and t[0].low<t[4].low
and t[0].low<t[3].low
and t[0].low<t[2].low
and t[0].low<t[1].low
then low_high=(t[0].low)-10
message("Стоп-лосс будет установлен по цене ".. tostring ((t[0].low)-10).."!")
end
end
if PosNow<0 then
message("Работает!")
end
end
|