Class: JIJI::RmtOperator
Overview
リアル取引用オペレーター
Instance Attribute Summary collapse
-
#trade_enable ⇒ Object
Returns the value of attribute trade_enable.
Attributes inherited from Operator
#conf, #draw, #fixed_profit_or_loss, #lose, #positions, #profit_or_loss, #win
Instance Method Summary collapse
-
#buy(count, pair = :EURJPY, trader = "") ⇒ Object
購入する count:: 購入する数量 return:: Position.
-
#commit(position) ⇒ Object
取引を確定する.
-
#initialize(client, logger, trade_result_dao, trade_enable = true, money = nil) ⇒ RmtOperator
constructor
コンストラクタ client:: クライアント logger:: ロガー money:: 保証金.
-
#sell(count, pair = :EURJPY, trader = "") ⇒ Object
売却する count:: 売却する数量 return:: Position.
Methods inherited from Operator
#flush, #next_rates, #stop, #win_rate
Constructor Details
#initialize(client, logger, trade_result_dao, trade_enable = true, money = nil) ⇒ RmtOperator
コンストラクタ
- client
-
クライアント
- logger
-
ロガー
- money
-
保証金
292 293 294 295 296 297 |
# File 'lib/jiji/operator.rb', line 292 def initialize( client, logger, trade_result_dao, trade_enable=true, money=nil ) super(trade_result_dao,money) @client = client @logger = logger @trade_enable = trade_enable end |
Instance Attribute Details
#trade_enable ⇒ Object
Returns the value of attribute trade_enable.
359 360 361 |
# File 'lib/jiji/operator.rb', line 359 def trade_enable @trade_enable end |
Instance Method Details
#buy(count, pair = :EURJPY, trader = "") ⇒ Object
購入する
- count
-
購入する数量
- return
-
Position
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 |
# File 'lib/jiji/operator.rb', line 302 def buy(count, pair=:EURJPY, trader="") open_interest_no = nil order_no = nil if @trade_enable JIJI::Util.log_if_error_and_throw( @logger ) { rate = @rate[pair] # 成り行きで買い result = @client.request{ |fx| fx.order( JIJI::Util.convert_currency_pair_code_r(pair), ClickClient::FX::BUY, count, ={:slippage_base_rate=>rate.bid} ) } open_interest_no = result.open_interest_no order_no = result.order_no } end p = super(count, pair, trader) p.open_interest_no = open_interest_no p.order_no = order_no p end |
#commit(position) ⇒ Object
取引を確定する
348 349 350 351 352 353 354 355 356 357 |
# File 'lib/jiji/operator.rb', line 348 def commit(position) if @trade_enable JIJI::Util.log_if_error_and_throw( @logger ) { @client.request {|fx| fx.settle( position.open_interest_no, position.count ) } } end super(position) end |
#sell(count, pair = :EURJPY, trader = "") ⇒ Object
売却する
- count
-
売却する数量
- return
-
Position
326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 |
# File 'lib/jiji/operator.rb', line 326 def sell(count, pair=:EURJPY, trader="") open_interest_no = nil order_no = nil if @trade_enable JIJI::Util.log_if_error_and_throw( @logger ) { rate = @rate[pair] # 成り行きで売り result = @client.request {|fx| fx.order( JIJI::Util.convert_currency_pair_code_r(pair), ClickClient::FX::SELL, count, ={:slippage_base_rate=>rate.ask} ) } open_interest_no = result.open_interest_no order_no = result.order_no } end p = super(count, pair, trader) p.open_interest_no = open_interest_no p.order_no = order_no p end |