есть условие входа в позицю и есть отдельно тейк и стоп,когда складую вместе сразу после запуска виставляються лимитки,как зделать так чтоб лимитки виставлялись после входа в позицю?Заранее благодарен
Вот скрипти
run = true
function main()
while run do
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceB = Price + 50 * PriceStep --маркет цена покупки
local N1=getNumCandles("Price")
local N2=getNumCandles("MyPrice")
t1,n1,i1=getCandlesByIndex("Price", 0, N1-3, 2)
t2,n2,i2=getCandlesByIndex("MyPrice", 0, N2-3, 2)
--сигнал на покупку (первый мувинг пересекает второй снизу вверх
if t1[0].close<t2[0].close and t1[1].close>t2[1].close then
Open('SPBFUT', 'RIH6',PriceB , 1, 'B')
end
sleep(500)
end
end
function OnStop()
run = false
end
function Open(class_code, sec_code, price, qty, operation)
local Transaction={
['TRANS_ID'] = "1",
['ACTION'] = 'NEW_ORDER',
['CLASSCODE'] = tostring(class_code),
['SECCODE'] = tostring(sec_code),
['PRICE'] = tostring(price),
['QUANTITY'] = tostring(qty),
['OPERATION'] = operation,
['TYPE'] = 'L',
['QUANTITY'] = tostring(qty),
['ACCOUNT'] = 'SPBFUT011Ib '
}
local res = sendTransaction(Transaction)
if res ~= '' then message('Ошибка отправки транзакции: '..res) end
end
И второй
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceT = Price * 1+200 --маркет цена продажи
SEC_PRICE_STEP = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
STOP_LOSS=1;
TAKE_PROFIT=3;
stopprice= tostring(Price - TAKE_PROFIT*SEC_PRICE_STEP);
stopprice2= tostring(Price + STOP_LOSS*SEC_PRICE_STEP);
if operation(S) then send
local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = "2",
["CLASSCODE"]="SPBFUT",
["SECCODE"]="RIH6",
["ACCOUNT"]="SPBFUT011Ib",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceT),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["OFFSET"] = tostring(2*SEC_PRICE_STEP),
["OFFSET_UNITS"] = "PRICE_UNITS",
["SPREAD"]= "30",
["SPREAD_UNITS"] = "PRICE_UNITS",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
res = sendTransaction(Transaction);
end
message('Выставление тейк-стоп: '..res,2)
Вот скрипти
run = true
function main()
while run do
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceB = Price + 50 * PriceStep --маркет цена покупки
local N1=getNumCandles("Price")
local N2=getNumCandles("MyPrice")
t1,n1,i1=getCandlesByIndex("Price", 0, N1-3, 2)
t2,n2,i2=getCandlesByIndex("MyPrice", 0, N2-3, 2)
--сигнал на покупку (первый мувинг пересекает второй снизу вверх
if t1[0].close<t2[0].close and t1[1].close>t2[1].close then
Open('SPBFUT', 'RIH6',PriceB , 1, 'B')
end
sleep(500)
end
end
function OnStop()
run = false
end
function Open(class_code, sec_code, price, qty, operation)
local Transaction={
['TRANS_ID'] = "1",
['ACTION'] = 'NEW_ORDER',
['CLASSCODE'] = tostring(class_code),
['SECCODE'] = tostring(sec_code),
['PRICE'] = tostring(price),
['QUANTITY'] = tostring(qty),
['OPERATION'] = operation,
['TYPE'] = 'L',
['QUANTITY'] = tostring(qty),
['ACCOUNT'] = 'SPBFUT011Ib '
}
local res = sendTransaction(Transaction)
if res ~= '' then message('Ошибка отправки транзакции: '..res) end
end
И второй
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceT = Price * 1+200 --маркет цена продажи
SEC_PRICE_STEP = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
STOP_LOSS=1;
TAKE_PROFIT=3;
stopprice= tostring(Price - TAKE_PROFIT*SEC_PRICE_STEP);
stopprice2= tostring(Price + STOP_LOSS*SEC_PRICE_STEP);
if operation(S) then send
local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = "2",
["CLASSCODE"]="SPBFUT",
["SECCODE"]="RIH6",
["ACCOUNT"]="SPBFUT011Ib",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceT),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["OFFSET"] = tostring(2*SEC_PRICE_STEP),
["OFFSET_UNITS"] = "PRICE_UNITS",
["SPREAD"]= "30",
["SPREAD_UNITS"] = "PRICE_UNITS",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
res = sendTransaction(Transaction);
end
message('Выставление тейк-стоп: '..res,2)