はっちゅう君プラス アドインの建玉一覧取得

先日、GMOクリック証券のはっちゅう君プラスのアドイン機能を使ったトレードツールの開発をする機会があったのですが、
GMOクリック証券から提供されているアドイン開発ガイドが、いまいちわかりにくく、試行錯誤しながらやった時のメモです。

このアドイン開発ガイドには、
・先物の相場情報の取得
・注文処理
のサンプルはあるのですが、僕が知りたかったのは、建玉一覧の取得方法でした。

以下のようにコードを書いたら取得できましたので、同じところで躓いている人がいたら参考にしてください。

///建玉一覧があったときに入る構造体
private struct POSITION_ITEM
{
    public decimal decAppraisalPL;               //評価損益
    public decimal decCurrentPrice;              //現在値
    public string strLastTradeDate;              //取引最終日
    public string strOpenDate;                   //建日
    public decimal decOpenPrice;                 //建単価(これ重要)
    public int intOpenQuantity;                  //建数量
    public int intOrderQuantity;                 //注文中数量
    public OrderWorkable owOrderWorkable;        //取引(注文)可能フラグ(Unworkable:取引不可 Workable:取引可能)
    public string strSecCode;                    //証券コード
    public TradeDivision trTradeDiv;             //売買区分(Sell or Buy)
}
/// 建玉一覧があったときに入る構造体
POSITION_ITEM[] S_POSITION_ITEM = new POSITION_ITEM[99];



/// 建玉の存在チェック(建玉リストの取得)
private bool GetPositionList()
{
    try
    {
        //建玉一覧取得イベント発生
        this.m_blnIsProcessing = false;
        FutureTradeService.Instance.RequestFuturePositionList( this.iHandlerPositionGet );

        return true;

    }
   
    catch
    {
        return false;
    }
}

/// 建玉一覧取得した時のイベントハンドラ
/// 非同期で動く
private void iHandlerPositionGet(object sender, ServiceResponseEventArgs<futurepositionlistresponse> args)
{
    try
    {
        //ポジションリストクラス生成
        FuturePositionListResponse fuPoList = args.Response;

        int i = 0;
        foreach (FuturePositionListResponse.PositionItem item in fuPoList.Positions)
        {
            this.S_POSITION_ITEM[i].decAppraisalPL = item.AppraisalPL;                  //評価損益
            this.S_POSITION_ITEM[i].decCurrentPrice = item.CurrentPrice;                //現在値
            this.S_POSITION_ITEM[i].strLastTradeDate = item.LastTradeDate.ToString();   //取引最終日
            this.S_POSITION_ITEM[i].strOpenDate = item.OpenDate.ToString();             //建日
            this.S_POSITION_ITEM[i].decOpenPrice = item.OpenPrice;                      //建単価(これ重要)
            this.S_POSITION_ITEM[i].intOpenQuantity = item.OpenQuantity;                //建数量
            this.S_POSITION_ITEM[i].intOrderQuantity = item.OrderQuantity;              //注文中数量
            this.S_POSITION_ITEM[i].owOrderWorkable = item.OrderWorkable;               //取引(注文)可能フラグ(Unworkable:取引不可 Workable:取引可能)
            this.S_POSITION_ITEM[i].strSecCode = item.SecurityCode;                     //証券コード
            this.S_POSITION_ITEM[i].trTradeDiv = item.TradeDivision;                    //売買区分(Sell or Buy)

            i++;
        }

        return;
    }
    catch (Exception ex)
    {
    }
}

このサンプルは建玉一覧ですが、同様にして注文一覧の取得もできるかと思います。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です