kabusapi

package
v0.0.0-...-fa8f3f5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 5, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var BaseURL = "http://localhost:18080/kabusapi"

BaseURL は API のベースURL。 変更したい場合は SetBaseURL("http://localhost:18081/kabusapi") のように設定してください。

View Source
var HTTPClient = &http.Client{Timeout: 30 * time.Second}

HTTPClient は REST 呼び出しに使用されるクライアントです。必要に応じて差し替え可能です。

Functions

func APIKey

func APIKey() string

APIKey は現在設定されているトークンを返します。

機能:

  • SetAPIKey で保持した X-API-KEY 用トークンを参照する。

引数:

  • なし。

返り値:

  • string: 現在保持している API トークン。未設定の場合は空文字。

func OpenQuote

func OpenQuote(handlers ...func(Quote)) (closeFunc func(), err error)

OpenQuote は WebSocket に接続して板情報を受信し、ハンドラーへ配信します。

機能:

  • kabuステーションの WebSocket エンドポイントへ接続し、受信した Quote を逐次ハンドラーへ渡す。
  • 返された closeFunc を呼び出すことで受信ループと接続を安全に終了できる。

引数:

  • handlers (...func(Quote)): 受信した Quote を処理するコールバック。nil は無視される。

返り値:

  • closeFunc (func()): 接続と受信を停止させるための関数。
  • err (error): 初回接続に失敗した場合のエラー。

func SetAPIKey

func SetAPIKey(k string)

SetAPIKey は X-API-KEY ヘッダー用のトークンを設定します。

機能:

  • API 呼び出し時に利用するトークンを上書きして保持する。

引数:

  • k (string): 新しく設定する API トークン。

返り値:

  • なし。

func SetBaseURL

func SetBaseURL(u string)

SetBaseURL は BaseURL を差し替えます。

機能:

  • API の送信先となるベース URL を上書きし、末尾のスラッシュを除去する。

引数:

  • u (string): 新しいベース URL。空文字は無視される。

返り値:

  • なし。

func SetHTTPClient

func SetHTTPClient(c *http.Client)

SetHTTPClient は使用する http.Client を差し替えます。

機能:

  • REST 呼び出しに使用する HTTP クライアントを任意の設定に置き換える。

引数:

  • c (*http.Client): 使用したいクライアント。nil の場合は既定を維持。

返り値:

  • なし。

Types

type APIError

type APIError struct {
	StatusCode int    // HTTPステータスコード
	Code       int    // API固有のエラーコード
	Message    string // APIメッセージ
	Body       string // 生のレスポンスボディ
}

APIError は非2xxのHTTPレスポンスを表すエラーです。

func (*APIError) Error

func (e *APIError) Error() string

Error は APIError の内容を整形した文字列として返します。

機能:

  • APIError を error インターフェースとして扱えるようにメッセージ化する。

引数:

  • なし(レシーバー e に設定された情報を利用)。

返り値:

  • string: ステータスコードやエラーコードを含むメッセージ。レシーバーが nil の場合は空文字。

type ErrorResponse

type ErrorResponse struct {
	Code    int    `json:"Code,omitempty"`
	Message string `json:"Message,omitempty"`
}

ErrorResponse はエラー時のレスポンスボディです。

type Handler

type Handler func(Quote)

Handler は既存の定義と合わせる

type Quote

type Quote struct {
	AskPrice float64 `json:"AskPrice"`
	AskQty   float64 `json:"AskQty"`
	AskSign  string  `json:"AskSign"`
	BidPrice float64 `json:"BidPrice"`
	BidQty   float64 `json:"BidQty"`
	BidSign  string  `json:"BidSign"`
	Buy1     struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
		Sign  string  `json:"Sign"`
	} `json:"Buy1"`
	Buy10 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy10"`
	Buy2 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy2"`
	Buy3 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy3"`
	Buy4 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy4"`
	Buy5 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy5"`
	Buy6 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy6"`
	Buy7 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy7"`
	Buy8 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy8"`
	Buy9 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Buy9"`
	CalcPrice                float64   `json:"CalcPrice"`
	ChangePreviousClose      float64   `json:"ChangePreviousClose"`
	ChangePreviousClosePer   float64   `json:"ChangePreviousClosePer"`
	ClearingPrice            float64   `json:"ClearingPrice"`
	CurrentPrice             float64   `json:"CurrentPrice"`
	CurrentPriceChangeStatus string    `json:"CurrentPriceChangeStatus"`
	CurrentPriceStatus       float64   `json:"CurrentPriceStatus"`
	CurrentPriceTime         time.Time `json:"CurrentPriceTime"`
	Exchange                 float64   `json:"Exchange"`
	ExchangeName             string    `json:"ExchangeName"`
	HighPrice                float64   `json:"HighPrice"`
	HighPriceTime            time.Time `json:"HighPriceTime"`
	LowPrice                 float64   `json:"LowPrice"`
	LowPriceTime             time.Time `json:"LowPriceTime"`
	OpeningPrice             float64   `json:"OpeningPrice"`
	OpeningPriceTime         time.Time `json:"OpeningPriceTime"`
	PreviousClose            float64   `json:"PreviousClose"`
	PreviousCloseTime        time.Time `json:"PreviousCloseTime"`
	SecurityType             float64   `json:"SecurityType"`
	Sell1                    struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
		Sign  string  `json:"Sign"`
	} `json:"Sell1"`
	Sell10 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell10"`
	Sell2 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell2"`
	Sell3 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell3"`
	Sell4 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell4"`
	Sell5 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell5"`
	Sell6 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell6"`
	Sell7 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell7"`
	Sell8 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell8"`
	Sell9 struct {
		Price float64 `json:"Price"`
		Qty   float64 `json:"Qty"`
	} `json:"Sell9"`
	Symbol            string    `json:"Symbol"`
	SymbolName        string    `json:"SymbolName"`
	TradingValue      float64   `json:"TradingValue"`
	TradingVolume     float64   `json:"TradingVolume"`
	TradingVolumeTime time.Time `json:"TradingVolumeTime"`
	VWAP              float64   `json:"VWAP"`
}

Websocket受信データ

type ReqGetInfoOrders

type ReqGetInfoOrders struct {
	// 取得する商品 定義値 説明 0 すべて 1 現物 2 信用 3 先物 4 OP
	Product string `json:"-" query:"product"`
	// 注文番号 ※指定された注文番号と一致する注文のみレスポンスします。 ※指定された注文番号との比較では大文字小文字を区別しません。 ※複数の注文番号を指定することはできません。
	ID string `json:"-" query:"id"`
	// 更新日時 ※形式:yyyyMMddHHmmss (例:20201201123456) ※指定された更新日時以降(指定日時含む)に更新された注文のみレスポンスします。 ※複数の更新日時を指定することはできません。
	Updtime string `json:"-" query:"updtime"`
	// 注文詳細抑止 定義値 説明 true 注文詳細を出力する(デフォルト) false 注文詳細の出力しない
	Details string `json:"-" query:"details"`
	// 銘柄コード ※指定された銘柄コードと一致する注文のみレスポンスします。 ※複数の銘柄コードを指定することができません。
	Symbol string `json:"-" query:"symbol"`
	// 状態 ※指定された状態と一致する注文のみレスポンスします。 ※フィルタには数字の入力のみ受け付けます。 ※複数の状態を指定することはできません。 定義値 説明 1 待機(発注待機) 2 処理中(発注送信中) 3 処理済(発注済・訂正済) 4 訂正取消送信中 5 終了(発注エラー・取消済・全約定・失効・期限切れ)
	State string `json:"-" query:"state"`
	// 売買区分 ※指定された売買区分と一致する注文のみレスポンスします。 ※フィルタには数字の入力のみ受け付けます。 ※複数の売買区分を指定することができません。 定義値 説明 1 売 2 買
	Side string `json:"-" query:"side"`
	// 取引区分 ※指定された取引区分と一致する注文のみレスポンスします。 ※フィルタには数字の入力のみ受け付けます。 ※複数の取引区分を指定することができません。 定義値 説明 2 新規 3 返済
	Cashmargin string `json:"-" query:"cashmargin"`
}

ReqGetInfoOrders は **GET /orders** のリクエスト。

注文約定照会

  • 認証: 必須(X-API-KEY ヘッダー)

type ReqGetInfoPositions

type ReqGetInfoPositions struct {
	// 取得する商品 定義値 説明 0 すべて 1 現物 2 信用 3 先物 4 OP
	Product string `json:"-" query:"product"`
	// 銘柄コード ※指定された銘柄コードと一致するポジションのみレスポンスします。 ※複数の銘柄コードを指定することはできません。
	Symbol string `json:"-" query:"symbol"`
	// 売買区分フィルタ 指定された売買区分と一致する注文を返す 定義値 説明 1 売 2 買
	Side string `json:"-" query:"side"`
	// 追加情報出力フラグ(未指定時:true) ※追加情報は、「現在値」、「評価金額」、「評価損益額」、「評価損益率」を意味します。 定義値 説明 true 追加情報を出力する false 追加情報を出力しない
	Addinfo string `json:"-" query:"addinfo"`
}

ReqGetInfoPositions は **GET /positions** のリクエスト。

残高照会

  • 認証: 必須(X-API-KEY ヘッダー)

type ReqGetInfoSymbolnameFuture

type ReqGetInfoSymbolnameFuture struct {
	// 先物コード ※大文字小文字は区別しません。 定義値 説明 NK225 日経平均先物 NK225mini 日経225mini先物 TOPIX TOPIX先物 TOPIXmini ミニTOPIX先物 GROWTH グロース250先物 JPX400 JPX日経400先物 DOW NYダウ先物 VI 日経平均VI先物 Core30 TOPIX Core30先物 REIT 東証REIT指数先物 NK225micro 日経225マイクロ先物
	FutureCode string `json:"-" query:"FutureCode"`
	// 限月 ※限月はyyyyMM形式で指定します。0を指定した場合、直近限月となります。 ※取引最終日に「0」(直近限月)を指定した場合、日中・夜間の時間帯に関わらず、 取引最終日を迎える限月の銘柄コードを返します。取引最終日を迎える銘柄の取引は日中取引をもって終了となりますので、ご注意ください。
	DerivMonth string `json:"-" query:"DerivMonth" required:"true"`
}

ReqGetInfoSymbolnameFuture は **GET /symbolname/future** のリクエスト。

先物銘柄コード取得

  • 認証: 必須(X-API-KEY ヘッダー)

type ReqPostAuthToken

type ReqPostAuthToken struct {
	// APIパスワード
	APIPassword string `json:"APIPassword" validate:"required"`
}

ReqPostAuthToken は **POST /token** のリクエスト。

### 概要 トークン発行

type ReqPostOrderSendorderFuture

type ReqPostOrderSendorderFuture struct {
	// Symbol は先物銘柄コード。
	// 取引最終日に DerivMonth=0(直近限月)を指定した場合は最終日の限月コードが返るため、日中引けで取引終了となる点に注意。
	Symbol string `json:"Symbol" validate:"required"`
	// Exchange は市場コード。2:日通し、23:日中、24:夜間、32:SOR日通し、33:SOR日中、34:SOR夜間。
	// SOR は日経225先物(ラージ/ミニ)、TOPIX(ラージ/ミニ)、東証マザーズ指数、JPX日経400、NYダウなど一部銘柄のみ有効。
	Exchange int `json:"Exchange" validate:"required"`
	// TradeType は取引区分。1:新規、2:返済。
	TradeType int `json:"TradeType" validate:"required"`
	// TimeInForce は有効期間条件。1:FAS、2:FAK、3:FOK。
	// FrontOrderType および市場コードとの組み合わせに制限があるため、必要に応じて仕様書の対応表を参照する。
	TimeInForce int `json:"TimeInForce" validate:"required"`
	// Side は売買区分。1:売、2:買。
	Side string `json:"Side" validate:"required"`
	// Qty は注文数量。
	Qty int `json:"Qty" validate:"required"`
	// ClosePositionOrder は決済順序。0:日付古→損益高、1:日付古→損益低、2:日付新→損益高、3:日付新→損益低、
	// 4:損益高→日付古、5:損益高→日付新、6:損益低→日付古、7:損益低→日付新。ClosePositions との同時指定は不可。
	ClosePositionOrder int `json:"ClosePositionOrder,omitempty"`
	// ClosePositions は返済建玉を個別指定する。ClosePositionOrder と排他。
	ClosePositions []struct {
		HoldID string `json:"HoldID,omitempty"` // 返済建玉ID。
		Qty    int    `json:"Qty,omitempty"`    // 返済建玉数量。
	} `json:"ClosePositions,omitempty"`
	// FrontOrderType は執行条件。18:引成(TimeInForce は FAK のみ)、20:指値、28:引指(TimeInForce は FAS のみ)、
	// 30:逆指値(AfterHitPrice 側で価格を指定)、120:成行(Price は 0 を指定)。
	FrontOrderType int `json:"FrontOrderType" validate:"required"`
	// Price は注文価格。成行や引成では 0 を指定し、その他は発注したい単価を設定する。
	Price float64 `json:"Price" validate:"required"`
	// ExpireDay は注文有効期限の日付。yyyyMMdd 形式、0 は「本日」扱い(市場の引け後は翌取引所営業日、休前日は休日明け)。
	// 日替わりは kabu ステーション側の日付更新タイミングに従う。
	ExpireDay int `json:"ExpireDay" validate:"required"`
	// ReverseLimitOrder は FrontOrderType=逆指値のときに設定する条件。
	ReverseLimitOrder *struct {
		TriggerPrice      float64 `json:"TriggerPrice,omitempty"`      // TriggerPrice は逆指値の発動価格。未設定や数値以外はエラー。
		UnderOver         int     `json:"UnderOver,omitempty"`         // UnderOver は発動条件。1:以下、2:以上。未設定や 1/2 以外はエラー。
		AfterHitOrderType int     `json:"AfterHitOrderType,omitempty"` // AfterHitOrderType はヒット後の執行条件。1:成行、2:指値。日通しでは 2 のみ有効、日中/夜間では 1 または 2 を指定。逆指値成行は TimeInForce=FAK、逆指値指値は TimeInForce=FAS を指定する。
		AfterHitPrice     float64 `json:"AfterHitPrice"`               // AfterHitPrice はヒット後の価格。成行なら 0、指値なら単価を指定。未設定や数値以外はエラー。
	} `json:"ReverseLimitOrder,omitempty"`
}

ReqPostOrderSendorderFuture は **POST /sendorder/future** のリクエストボディ。

概要:

  • 先物銘柄の新規・返済注文を発注する。
  • X-API-KEY ヘッダーによる認証が必須。
  • 同一銘柄での同時発注は 5 件程度までを推奨。

type ReqPutOrderCancelorder

type ReqPutOrderCancelorder struct {
	// 注文番号<br>sendorderのレスポンスで受け取るOrderID。
	OrderId string `json:"OrderId" validate:"required"`
}

ReqPutOrderCancelorder は **PUT /cancelorder** のリクエスト。

### 概要 注文取消

- 認証: 必須(X-API-KEY ヘッダー)

type ReqPutRegisterRegister

type ReqPutRegisterRegister struct {
	Symbols []struct {
		Symbol string `json:"Symbol,omitempty"` // 銘柄コード
		// Exchange は市場コード。
		//   - 1: 東証
		//   - 3: 名証
		//   - 5: 福証
		//   - 6: 札証
		//   - 2: 日通し
		//   - 23: 日中
		//   - 24: 夜間
		Exchange int `json:"Exchange,omitempty"`
	} `json:"Symbols"`
}

ReqPutRegisterRegister は PUT /register のリクエストボディ。

  • 用途: PUSH 配信対象の銘柄を登録する
  • 認証: 必須(X-API-KEY ヘッダー)

type ReqPutRegisterUnregister

type ReqPutRegisterUnregister struct {
	// 為替銘柄を登録解除する場合の指定:
	//   - Symbol: 通貨A/通貨B(例: EUR/USD)
	//   - Exchange: 300
	Symbols []struct {
		Symbol string `json:"Symbol,omitempty"` // 銘柄コード
		// Exchange は市場コード。
		//   - 1: 東証
		//   - 3: 名証
		//   - 5: 福証
		//   - 6: 札証
		//   - 2: 日通し
		//   - 23: 日中
		//   - 24: 夜間
		//   - 300: 為替(通貨ペア)
		Exchange int `json:"Exchange,omitempty"`
	} `json:"Symbols"`
}

ReqPutRegisterUnregister は PUT /unregister のリクエストボディ。

  • 用途: PUSH 登録した銘柄を個別に解除する
  • 認証: 必須(X-API-KEY ヘッダー)

type ReqPutRegisterUnregisterAll

type ReqPutRegisterUnregisterAll struct {
}

ReqPutRegisterUnregisterAll は PUT /unregister/all のリクエストボディ。

  • 用途: 登録済み銘柄を全件解除する
  • 認証: 必須(X-API-KEY ヘッダー)

type ResGetInfoOrders

type ResGetInfoOrders []struct {
	// 注文番号
	ID string `json:"ID,omitempty"`
	// 状態 ※OrderState と同一。1:待機 2:処理中 3:処理済 4:訂正取消送信中 5:終了
	State int `json:"State,omitempty"`
	// 注文状態 ※State と同一。1:待機 2:処理中 3:処理済 4:訂正取消送信中 5:終了
	OrderState int `json:"OrderState,omitempty"`
	// 執行条件 1:ザラバ 2:寄り 3:引け 4:不成 5:対当指値 6:IOC
	OrdType int `json:"OrdType,omitempty"`
	// 受注日時
	RecvTime string `json:"RecvTime,omitempty"`
	// 銘柄コード
	Symbol string `json:"Symbol,omitempty"`
	// 銘柄名
	SymbolName string `json:"SymbolName,omitempty"`
	// 市場コード 1:東証 3:名証 5:福証 6:札証 9:SOR 27:東証+ 2:日通し 23:日中 24:夜間
	Exchange int `json:"Exchange,omitempty"`
	// 市場名
	ExchangeName string `json:"ExchangeName,omitempty"`
	// 有効期間条件 ※先物・オプション銘柄の場合のみ 1:FAS 2:FAK 3:FOK
	TimeInForce int `json:"TimeInForce,omitempty"`
	// 値段
	Price float64 `json:"Price,omitempty"`
	// 発注数量 ※期限切れや失効でもゼロにはならない
	OrderQty float64 `json:"OrderQty,omitempty"`
	// 約定数量
	CumQty float64 `json:"CumQty,omitempty"`
	// 売買区分 1:売 2:買
	Side string `json:"Side,omitempty"`
	// 取引区分 2:新規 3:返済
	CashMargin int `json:"CashMargin,omitempty"`
	// 口座種別 2:一般 4:特定 12:法人
	AccountType int `json:"AccountType,omitempty"`
	// 受渡区分 2:お預り金 3:auマネーコネクト
	DelivType int `json:"DelivType,omitempty"`
	// 注文有効期限 yyyyMMdd 形式
	ExpireDay int `json:"ExpireDay,omitempty"`
	// 信用取引区分 1:制度信用 2:一般信用(長期) 3:一般信用(デイトレ)
	MarginTradeType int `json:"MarginTradeType,omitempty"`
	// プレミアム料 ※信用を注文した際に表示
	MarginPremium float64 `json:"MarginPremium,omitempty"`
	// 注文詳細
	Details []struct {
		// 注文明細レコードの生成順序。通番ではないが大小による順序は維持される。
		SeqNum int `json:"SeqNum,omitempty"`
		// 注文詳細番号
		ID string `json:"ID,omitempty"`
		// 明細種別 1:受付 2:繰越 3:期限切れ 4:発注 5:訂正 6:取消 7:失効 8:約定
		RecType int `json:"RecType,omitempty"`
		// 取引所番号
		ExchangeID string `json:"ExchangeID,omitempty"`
		// 状態 1:待機 2:処理中 3:処理済 4:エラー 5:削除済み
		State int `json:"State,omitempty"`
		// 処理時刻
		TransactTime string `json:"TransactTime,omitempty"`
		// 執行条件 null:取消 / 0:期限切れ・失効・約定 / 1:ザラバ / 2:寄り / 3:引け / 4:不成 / 5:対当指値 / 6:IOC
		OrdType int `json:"OrdType,omitempty"`
		// 値段
		Price float64 `json:"Price,omitempty"`
		// 数量
		Qty float64 `json:"Qty,omitempty"`
		// 約定番号
		ExecutionID string `json:"ExecutionID,omitempty"`
		// 約定日時
		ExecutionDay string `json:"ExecutionDay,omitempty"`
		// 受渡日
		DelivDay int `json:"DelivDay,omitempty"`
		// 手数料 ※明細種別が約定(RecType=8)の場合に設定
		Commission float64 `json:"Commission,omitempty"`
		// 手数料消費税 ※明細種別が約定(RecType=8)の場合に設定
		CommissionTax float64 `json:"CommissionTax,omitempty"`
	} `json:"Details,omitempty"`
}

ResGetInfoOrders は **GET /orders** のレスポンス。

注文約定照会

func GetInfoOrders

func GetInfoOrders(req ReqGetInfoOrders) (code int, res ResGetInfoOrders, err error)

GetInfoOrders は **GET /orders** を呼び出して注文・約定状況を取得します。

機能:

  • 商品区分や注文番号などで絞り込み、現在の注文一覧を取得する。

引数:

  • req (ReqGetInfoOrders): 注文照会の絞り込み条件。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResGetInfoOrders): 注文・約定に関する情報。
  • err (error): 通信エラーまたは APIError。

type ResGetInfoPositions

type ResGetInfoPositions []struct {
	// 約定番号 ※現物取引では、nullが返ります。
	ExecutionID string `json:"ExecutionID,omitempty"`
	// 口座種別 2:一般 4:特定 12:法人
	AccountType int `json:"AccountType,omitempty"`
	// 銘柄コード
	Symbol string `json:"Symbol,omitempty"`
	// 銘柄名
	SymbolName string `json:"SymbolName,omitempty"`
	// 市場コード 1:東証 3:名証 5:福証 6:札証 9:SOR 27:東証+ 2:日通し 23:日中 24:夜間
	Exchange int `json:"Exchange,omitempty"`
	// 市場名
	ExchangeName string `json:"ExchangeName,omitempty"`
	// 銘柄種別 ※先物・オプション銘柄の場合のみ 0:指数 1:現物 101:日経225先物 103:日経225OP 107:TOPIX先物 121:JPX400先物 144:NYダウ 145:日経平均VI 154:グロース250先物 155:TOPIX_REIT 171:TOPIX CORE30 901:日経平均225ミニ先物 907:TOPIXミニ先物
	SecurityType int `json:"SecurityType,omitempty"`
	// 約定日(建玉日) ※信用・先物・オプションの場合のみ ※現物取引では、nullが返ります。
	ExecutionDay int `json:"ExecutionDay,omitempty"`
	// 値段
	Price float64 `json:"Price,omitempty"`
	// 残数量(保有数量)
	LeavesQty float64 `json:"LeavesQty,omitempty"`
	// 拘束数量(返済のために拘束されている数量)
	HoldQty float64 `json:"HoldQty,omitempty"`
	// 売買区分 1:売 2:買
	Side string `json:"Side,omitempty"`
	// 諸経費 ※信用・先物・オプションの場合のみ
	Expenses float64 `json:"Expenses,omitempty"`
	// 手数料 ※信用・先物・オプションの場合のみ
	Commission float64 `json:"Commission,omitempty"`
	// 手数料消費税 ※信用・先物・オプションの場合のみ
	CommissionTax float64 `json:"CommissionTax,omitempty"`
	// 返済期日 ※信用・先物・オプションの場合のみ
	ExpireDay int `json:"ExpireDay,omitempty"`
	// 信用取引区分 ※信用の場合のみ 1:制度信用 2:一般信用(長期) 3:一般信用(デイトレ)
	MarginTradeType int `json:"MarginTradeType,omitempty"`
	// 現在値 追加情報出力フラグ:falseの場合、null
	CurrentPrice float64 `json:"CurrentPrice,omitempty"`
	// 評価金額 追加情報出力フラグ:falseの場合、null
	Valuation float64 `json:"Valuation,omitempty"`
	// 評価損益額 追加情報出力フラグ:falseの場合、null
	ProfitLoss float64 `json:"ProfitLoss,omitempty"`
	// 評価損益率 追加情報出力フラグ:falseの場合、null
	ProfitLossRate float64 `json:"ProfitLossRate,omitempty"`
}

ResGetInfoPositions は **GET /positions** のレスポンス。

残高照会

func GetInfoPositions

func GetInfoPositions(req ReqGetInfoPositions) (code int, res ResGetInfoPositions, err error)

GetInfoPositions は **GET /positions** を呼び出して建玉残高を取得します。

機能:

  • 商品区分や銘柄、保有区分でフィルタし、保有中の建玉一覧を取得する。

引数:

  • req (ReqGetInfoPositions): 残高照会の絞り込み条件。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResGetInfoPositions): 建玉残高の一覧。
  • err (error): 通信エラーまたは APIError。

type ResGetInfoSymbolnameFuture

type ResGetInfoSymbolnameFuture struct {
	// 銘柄コード
	Symbol string `json:"Symbol,omitempty"`
	// 銘柄名称
	SymbolName string `json:"SymbolName,omitempty"`
}

ResGetInfoSymbolnameFuture は **GET /symbolname/future** のレスポンス。

先物銘柄コード取得

func GetInfoSymbolnameFuture

func GetInfoSymbolnameFuture(req ReqGetInfoSymbolnameFuture) (code int, res ResGetInfoSymbolnameFuture, err error)

GetInfoSymbolnameFuture は **GET /symbolname/future** を呼び出して先物銘柄コードを取得します。

機能:

  • 先物銘柄コード区分や限月指定に基づき、取引可能な先物銘柄コード一覧を取得する。

引数:

  • req (ReqGetInfoSymbolnameFuture): 先物コード区分や限月、取引日を指定するリクエスト。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResGetInfoSymbolnameFuture): 取得した先物銘柄コード情報。
  • err (error): 通信エラーまたは APIError。

type ResPostAuthToken

type ResPostAuthToken struct {
	// 結果コード<br>0が成功。それ以外はエラーコード。
	ResultCode int `json:"ResultCode,omitempty"`
	// APIトークン
	Token string `json:"Token,omitempty"`
}

ResPostAuthToken は **POST /token** のレスポンス。

### 概要 トークン発行

func PostAuthToken

func PostAuthToken(req ReqPostAuthToken) (code int, res ResPostAuthToken, err error)

PostAuthToken は **POST /token** を実行し、API トークンを発行します。

機能:

  • kabuステーション API のトークン発行エンドポイントへリクエストを送り、新規トークンを取得する。

引数:

  • req (ReqPostAuthToken): API パスワードを含むリクエストボディ。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResPostAuthToken): 発行結果コードと取得したトークン。
  • err (error): 通信エラーまたは APIError。

type ResPostOrderSendorderFuture

type ResPostOrderSendorderFuture struct {
	// 結果コード<br>0が成功。それ以外はエラーコード。
	Result int `json:"Result,omitempty"`
	// 受付注文番号
	OrderId string `json:"OrderId,omitempty"`
}

ResPostOrderSendorderFuture は **POST /sendorder/future** のレスポンス。

### 概要 注文発注(先物)

func PostOrderSendorderFuture

func PostOrderSendorderFuture(req ReqPostOrderSendorderFuture) (code int, res ResPostOrderSendorderFuture, err error)

PostOrderSendorderFuture は **POST /sendorder/future** を実行し、先物の注文を発注します。

機能:

  • 取引区分や数量、執行条件などを指定し、先物取引の新規・返済注文を送信する。

引数:

  • req (ReqPostOrderSendorderFuture): 先物注文の内容をまとめたリクエスト。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResPostOrderSendorderFuture): 受付結果と注文番号。
  • err (error): 通信エラーまたは APIError。

type ResPutOrderCancelorder

type ResPutOrderCancelorder struct {
	// 結果コード<br>0が成功。それ以外はエラーコード。
	Result int `json:"Result,omitempty"`
	// 受付注文番号
	OrderId string `json:"OrderId,omitempty"`
}

ResPutOrderCancelorder は **PUT /cancelorder** のレスポンス。

### 概要 注文取消

func PutOrderCancelorder

func PutOrderCancelorder(req ReqPutOrderCancelorder) (code int, res ResPutOrderCancelorder, err error)

PutOrderCancelorder は **PUT /cancelorder** を実行し、既存注文を取り消します。

機能:

  • 受付済みの注文番号を指定して、発注済みの注文をキャンセルする。

引数:

  • req (ReqPutOrderCancelorder): 取消対象の OrderId を含むリクエスト。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResPutOrderCancelorder): 取消結果と注文番号。
  • err (error): 通信エラーまたは APIError。

type ResPutRegisterRegister

type ResPutRegisterRegister struct {
	// 現在登録されている銘柄のリスト
	RegistList []struct {
		Symbol string `json:"Symbol,omitempty"` // 銘柄コード
		// Exchange は市場コード。
		//   - 1: 東証
		//   - 3: 名証
		//   - 5: 福証
		//   - 6: 札証
		//   - 2: 日通し
		//   - 23: 日中
		//   - 24: 夜間
		Exchange int `json:"Exchange,omitempty"`
	} `json:"RegistList,omitempty"`
}

ResPutRegisterRegister は PUT /register のレスポンス。

  • 返却内容: 登録済み銘柄リスト

func PutRegisterRegister

func PutRegisterRegister(req ReqPutRegisterRegister) (code int, res ResPutRegisterRegister, err error)

PutRegisterRegister は **PUT /register** を実行し、PUSH 配信対象の銘柄を登録します。

機能:

  • PUSH 配信で受信したい銘柄と市場コードのリストを API 登録銘柄リストに追加する。

引数:

  • req (ReqPutRegisterRegister): 登録する銘柄コードと市場コードの配列。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResPutRegisterRegister): 登録後の銘柄リスト。
  • err (error): 通信エラーまたは APIError。

type ResPutRegisterUnregister

type ResPutRegisterUnregister struct {
	// 現在登録されている銘柄のリスト
	RegistList []struct {
		Symbol string `json:"Symbol,omitempty"` // 銘柄コード
		// Exchange は市場コード。
		//   - 1: 東証
		//   - 3: 名証
		//   - 5: 福証
		//   - 6: 札証
		//   - 2: 日通し
		//   - 23: 日中
		//   - 24: 夜間
		//   - 300: 為替(通貨ペア)
		Exchange int `json:"Exchange,omitempty"`
	} `json:"RegistList,omitempty"`
}

ResPutRegisterUnregister は PUT /unregister のレスポンス。

  • 返却内容: 登録解除後の銘柄リスト

func PutRegisterUnregister

func PutRegisterUnregister(req ReqPutRegisterUnregister) (code int, res ResPutRegisterUnregister, err error)

PutRegisterUnregister は **PUT /unregister** を実行し、指定銘柄の PUSH 登録を解除します。

機能:

  • API 登録銘柄リストに登録済みの銘柄を指定し、PUSH 配信対象から削除する。

引数:

  • req (ReqPutRegisterUnregister): 解除対象の銘柄コードと市場コードのリスト。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResPutRegisterUnregister): 解除後の登録銘柄リスト。
  • err (error): 通信エラーまたは APIError。

type ResPutRegisterUnregisterAll

type ResPutRegisterUnregisterAll struct {
	// 現在登録されている銘柄のリスト。
	// - 全解除が成功した場合は空。
	// - エラーがある場合は解除前の登録銘柄を返す。
	RegistList []interface{}
}

ResPutRegisterUnregisterAll は PUT /unregister/all のレスポンス。

  • 返却内容: 全解除後の登録銘柄リスト

func PutRegisterUnregisterAll

func PutRegisterUnregisterAll(req ReqPutRegisterUnregisterAll) (code int, res ResPutRegisterUnregisterAll, err error)

PutRegisterUnregisterAll は **PUT /unregister/all** を実行し、登録銘柄を一括解除します。

機能:

  • API 登録銘柄リストに登録されている全銘柄を PUSH 配信対象からまとめて削除する。

引数:

  • req (ReqPutRegisterUnregisterAll): 全解除を指示する空のリクエスト。

返り値:

  • code (int): HTTP ステータスコード。
  • res (ResPutRegisterUnregisterAll): 解除後の登録銘柄リスト。
  • err (error): 通信エラーまたは APIError。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL