Аргументы Quantstrat add.rule: orderqty vs tradeSize vs maxSize

Я не могу найти в документации Quantstrat определение аргументов add.rule. Мне интересно узнать, в чем разница между orderqty, tradeSize и maxSize.

Найден следующий связанный материал на quantstrattrader< /а>:

Аргумент orderqty применяется только тогда, когда не указано osFUN. Он может принимать фиксированное значение (например, 1, 2) или, если тип правила — «выход», количество «все», чтобы сгладить позицию.

osFUN указывает используемую функцию определения размера ордера. Аргумент osFUN на самом деле является объектом функции, который передается в качестве аргумента. Если вы не хотите использовать osFUN, просто используйте фиксированное количество, например 100, или, если вы используете ордера типа выхода, используйте «все», чтобы свести позицию.

Вот как выглядит функция add.rule:

 add.rule(strategy.st, name = "ruleSignal",
          arguments = list(sigcol = "longsig",
                           sigval = TRUE,               
                           ordertype = "market",
                           prefer = "Open",            
                           orderside = "long",
                           orderqty = 100,
                           replace = FALSE,            
                           osFUN = osMaxPos,
                           tradeSize = 100,
                           maxSize = 100),
          type = "enter")

Спасибо.


person Krug    schedule 25.06.2017    source источник


Ответы (2)


@blackknight316 прав. Взгляните на код для ruleSignal (print ruleSignal). Вы увидите, что для tradeSize или maxSize не существует формальных аргументов.

Тем не менее, функция ruleSignal не выдает ошибку при вызове, потому что использует аргумент с многоточием (то есть ...). Прочтите об этом специальном параметре в официальной документации по языку R.

Напечатайте ruleSignal и посмотрите на источник. Это одна часть:

orderqty <- osFUN(strategy = strategy, data = mktdata, 
                timestamp = timestamp, orderqty = orderqty, ordertype = ordertype, 
                orderside = orderside, portfolio = portfolio, 
                symbol = symbol, ... = ..., ruletype = ruletype, 
                orderprice = as.numeric(orderprice))

который использует ... (как и addOrder).

tradeSize и maxSize включены в add.rule в связанном коде, вероятно, потому, что они передаются функции упорядочения, используемой в примере, на который вы ссылаетесь. См. аргумент osFUN=osDollarATR, который на самом деле является объектом, являющимся функцией. osDollarATR, конечно же, определяется пользователем автором. Вы, вероятно, найдете определение этой функции в другом сообщении в блоге и увидите, что tradeSize и maxSize являются ее формальными аргументами.

person FXQuantTrader    schedule 13.07.2017

Я только что закончил читать этот блог и увидел этот вопрос. отвечу по мере возможности!

According to заметки Гая Йоллина. orderqty - главный аргумент. Я не вижу, чтобы он использовал какие-либо другие аргументы в своем правиле.

Надеюсь, что это ответ на ваш вопрос.

person boniface316    schedule 25.06.2017