Buy=Close>Open;
Sell=Close<Open;
Но мне нужно, что скрипт на бэктесте на сигнале buy покупал 2 бумаги, а на sell продавал 1 бумагу.
Подскажите плиз, что нужно добавить в скрипт?
На форумах я что-то ничего толкового не нашел...
<code class="rainbow" data-language="lua"> while stopped == false do Quotes_1 = getQuoteLevel2("SPBFUT", "SRU0") Bid_Count_1 = tonumber(Quotes_1.bid_count) if Bid_Count_1>1 then aa= tonumber(Quotes_1.bid[Bid_Count_1].quantity) SetCell(Table, 1, 1, tostring(aa)) end local asset = getFuturesHolding("SPBFUT", "SPBFUT****","SRU0",0).totalnet repeat if aa>1 and asset>0 then local ID_B_Order=10 local OrderSell = { ["ACTION"]="NEW_ORDER", ["ACCOUNT"]= "SPBFUT****", ["OPERATION"] = "S", ["CLASSCODE"]="SPBFUT", ["SECCODE"] = "SRU0", ["PRICE"] = "0", ["QUANTITY"] = tostring(1), ["TRANS_ID"] = tostring(ID_B_Order), ["TYPE"] = "M", } local Err_Order = sendTransaction(OrderSell) message(Err_Order) end asset=asset-1 sleep(1000) until asset==5<br />end</code>
local SecCode = «LKU0»
local Quantity=1
function main()
while stopped == false do
local Quotes = getQuoteLevel2(«SPBFUT», SecCode)
local Offer_Price = tonumber(Quotes.offer[1].price)
local Offer_Vol = tonumber(Quotes.offer[1].quantity)
--отправка формы заявки
local LimitOrderBuy = { ххххх}
--условие входа в лонг
if Offer_Vol>10 then
message(Order)
local Order = sendTransaction(LimitOrderBuy)
end
sleep (200)
end
Смысл его такой: если количество лукойла в первой строке стакана больше 10, то покупается 1 бумага и работа скрипта завершается.
Так как скрипт срабатывает при определенном условии, то для перезапуска используется while stopped == false do и sleep (200).
Прикол в том, что при наступлении условия, скрипт начинает бомбить заявки по 1 шт пока не кончаются деньги (виртуальные).