2015-03-24 2 views
1

Я пытаюсь сделать заказ OCO по финансовому счету советника использования ibrokers и R.ibrokers R - Финансовый консультант - размещение заказа

Как разместить заказ OCO? Как я могу включить остановку и получить прибыль с каждой нотой OCO, которая также отменена?

Спасибо за любые рекомендации!

Пример кода:

Crude <- twsFuture('CL', 'NYMEX', '201505') 
fiveMin <- strftime(Sys.Date(), "%Y%m%d") 
fiveMin <- paste(fiveMin, "09:05:00", sep=" ") 

Price <- reqHistoricalData(tws, Contract=Crude, barSize = "5 mins", 
          duration = "30 S", useRTH = 0,endDateTime=(fiveMin)) 

HighPriceStr <- toString(Price$CLK5.High) 
MktHigh <- (as.numeric(HighPriceStr)) 

LowPriceStr <- toString(Price$CLK5.Low) 
MktLow <- (as.numeric(LowPriceStr)) 

#calculate range width 
range <- (MktHigh - MktLow) 

#enter orders if 5 min range <= .50 cents 
if (range <= .50){ 
#place oco lmt entry @ mkt high + .02, lmt sell @ mkt low - .02 

#sample limit order for FA account group named Futures. 
#IBrokers:::.placeOrder(twsOC, Crude, twsOrder(reqIds(tws), "SELL", "8", "LMT", lmtPrice = (Stop), faGroup ="Futures", faMethod ="EqualQuantity")) 
} 
+0

Вы можете искать или спрашивать на http://quant.stackexchange.com/, если вы не получили ответ здесь. – vpipkt

ответ

1

Частичный ответ:

Interactive Brokers использует OCA заказы, один отменяет все.

Вот пример:

IBrokers:::.placeOrder(twsOC, MiniCrude, twsOrder(reqIds(tws), "BUY", "3", "LMT", lmtPrice = (BreakTarget), ocaGroup = (breakerdirection), faGroup ="MiniFutures", faMethod ="EqualQuantity")) 
IBrokers:::.placeOrder(twsOC, MiniCrude, twsOrder(reqIds(tws), "BUY", "3", "STP", auxPrice = (BreakStop), ocaGroup = (breakerdirection), faGroup ="MiniFutures", faMethod ="EqualQuantity")) 

Вторая часть вопроса, как разместить вышеуказанные заказы только после того, как предел входа был заполнен.

reqExecutions()

Я не образец кода, написанного еще.

Смежные вопросы