Class: JIJI::AgentOperator

Inherits:
Object
  • Object
show all
Defined in:
lib/jiji/operator.rb

Overview

オペレータ

取引を行うためのクラスです。 エージェントのプロパティとして設定されるので、エージェント内では以下のコードで取引を実行できます。

sell_position = operator.sell(1, :EURJPY) # 売り buy_position = operator.buy(1, :EURJPY) # 買い operator.commit( sell_position ) # 決済

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(operator, agent_name) ⇒ AgentOperator

:nodoc:



357
358
359
360
361
# File 'lib/jiji/operator.rb', line 357

def initialize( operator, agent_name ) #:nodoc:
  @operator = operator
  @agent_name = agent_name
  @positions = {}.taint
end

Instance Attribute Details

#agent_nameObject

Returns the value of attribute agent_name.



392
393
394
# File 'lib/jiji/operator.rb', line 392

def agent_name
  @agent_name
end

#positionsObject (readonly)

建て玉



391
392
393
# File 'lib/jiji/operator.rb', line 391

def positions
  @positions
end

Instance Method Details

#buy(count, pair = :EURJPY) ⇒ Object

購入します。

count

購入する数量

pair

通貨ペアコード 例) :EURJPY

return

ポジション(JIJI::Position)



367
368
369
370
371
# File 'lib/jiji/operator.rb', line 367

def buy(count, pair=:EURJPY)
  p = @operator.buy( count, pair, @agent_name )
  @positions[p.position_id] = p
  return p
end

#commit(position) ⇒ Object

取引を確定します。

position

ホジション(JIJI::Position)



385
386
387
388
# File 'lib/jiji/operator.rb', line 385

def commit(position)
  @operator.commit(position)
  @positions.delete position.position_id
end

#sell(count, pair = :EURJPY) ⇒ Object

売却します。

count

売却する数量

pair

通貨ペアコード 例) :EURJPY

return

ポジション(JIJI::Position)



377
378
379
380
381
# File 'lib/jiji/operator.rb', line 377

def sell(count, pair=:EURJPY)
  p = @operator.sell( count, pair, @agent_name )
  @positions[p.position_id] = p
  return p
end