読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

トレール注文を行うサンプル

Ruby SBI証券スクレイピング

SBI証券のサイトより。トレール取引は

指値注文に値幅指定機能を追加する注文です。逆指値を注文するときに値動きによって売り逆指値価格を引き上げたり、買い逆指値価格を引き下げたりする注文です。

  • つまり、以下のような時にトレール注文で発注しておくと、山頂や谷底からトレール幅だけ下げた(上げた)タイミンクで取引を行ってくれます
    • 上昇トレンド中に「このトレンドが山を越えて下げ始めたらすかさず売りたい」とき。
    • 下降トレンド中に「このトレンドが谷を越えて上げ始めたらすかさず買いたい」とき。
  • 「逆指値注文に値幅指定機能を追加する」機能なので、執行条件は逆指値限定です。
    • APIでも執行条件の指定は無視されるようになっています。

以下は、GitHub - unageanu/sbiclientを使ってトレール注文を行うサンプルです。

require 'sbiclient'
require 'common'

# ログイン
c = SBIClient::Client.new
c.fx_session( USER, PASS, ORDER_PASS ) {|session|

  # レートを取得
  rates = session.list_rates
  
  # トレール注文
  # trail_rangeを指定するととレール注文になる。
  # 執行条件は逆指値限定なので、指定不要。
  begin
    order_id = session.order( SBIClient::FX::EURJPY, SBIClient::FX::BUY, 1, {
      :rate=>rates[SBIClient::FX::EURJPY].ask_rate + 0.5,
      :trail_range=>0.5,
      :expiration_type=>SBIClient::FX::EXPIRATION_TYPE_TODAY
    }) 
    print_order( session )
  ensure
    session.cancel_order(order_id.order_no) if order_id
  end
}

実行結果です。

---
order_no : 17214305 
trade_type : TRADE_TYPE_NEW
order_type : TRAIL
execution_expression : REVERSE_LIMIT_ORDER 
sell_or_buy : BUY 
pair : EURJPY
count : 1 
rate : 132.71 
order_state : 発注中