口座の残高や買付可能額を取得できるAccountsProviderクラスについて

オブジェクト指向EasyLanguageで利用可能なAccountsProviderクラスを使うと、口座の情報を取得できます。

具体的には、トレードステーションに初期搭載されている「トレードマネージャー」の「口座状況」タブで確認できる情報が中心、といえば分かりやすいと思います。

以下、AccountsProviderクラスを使って取得できる情報をPrint出力してみた結果です。(Updateされるごとに出力しているので見辛いかもしれませんが・・)

using elsystem;
using tsdata.trading;

Vars:
AccountsProvider oAP(NULL);

method void AnalysisTechnique_Initialized( elsystem.Object sender, elsystem.InitializedEventArgs args )
begin
Try
oAP = AccountsProvider.Create();
oAP.Updated += AccountsProvider_Updated;
oAP.Load = true;

Catch (Exception ex)
Print( "Error: ", " ", string.format("{0} | {1}[StackTrace]{2}", " ", ex.Source, ex.Message, ex.StackTrace) );
End;
end;

method void AccountsProvider_Updated( elsystem.Object sender, tsdata.trading.AccountUpdatedEventArgs args )
vars:
Account oAccount;

begin
Try

oAccount = oAP.Account[0];

ClearPrintLog();

Print("=======================");
Print("口座情報");
Print("=======================");
Print("口座ID", " ", oAccount.AccountID);
Print("口座名", " ", oAccount.Name);
Print("口座ステータス", " ", oAccount.Status);
Print("口座タイプ", " ", oAccount.Type.ToString());
Print();
Print("=======================");
Print("営業日開始時点");
Print("=======================");
Print("現金残高", " ", oAccount.BDCashBalance);
Print("未実現損益", " ", oAccount.BDUnrealizedPL);
Print("有効証拠金", " ", oAccount.BDAccountEquity);
Print("純資産額", " ", oAccount.BDAccountNetWorth);
Print("デイトレード 取引限度額", " ", oAccount.BDDayTradingBuyingPower);
Print("オプション取引限度額", " ", oAccount.BDOptionBuyingPower);
Print("オプション清算額", " ", oAccount.BDOptionLiquidationValue);
Print("オーバーナイト買付可能額", " ", oAccount.BDOvernightBuyingPower);
Print();
Print("=======================");
Print("リアルタイム");
Print("=======================");
Print("口座エクイティ", " ", oAccount.RTAccountEquity);
Print("純資産額", " ", oAccount.RTAccountNetWorth);
Print("現金残高", " ", oAccount.RTCashBalance);
Print("約定金額合計 (保有分) ", " ", oAccount.RTCostOfPositions);
Print("デイトレード取引限度額", " ", oAccount.RTDayTradingBuyingPower);
Print("リアルタイム必要証拠金", " ", oAccount.RTInitialMargin);
Print("最低必要保証金額", " ", oAccount.RTMaintenanceMargin);
Print("オプション買付可能額", " ", oAccount.RTOptionBuyingPower);
Print("オプション清算価値", " ", oAccount.RTOptionLiquidationValue);
Print("オーバーナイト買付可能額", " ", oAccount.RTOvernightBuyingPower);
Print("買付可能額", " ", oAccount.RTPurchasingPower);
Print("実現損益", " ", oAccount.RTRealizedPL);
Print("未実現損益", " ", oAccount.RTUnrealizedPL);
Print();
Print("=======================");
Print("その他");
Print("=======================");
Print("今日のリアルタイム取引エクイティ", " ", oAccount.TodaysRTTradeEquity);
Print("入金予定額", " ", oAccount.UnclearedDeposits);
Print("未受渡金", " ", oAccount.UnsettledFund);
Print("口座でデイトレードが許可されるか?", " ", oAccount.CanDayTrade);
Print("トレーダーがパターンデイトレーダーか?", " ", oAccount.IsDayTrader);
Print("オプショントレード許可レベル", " ", oAccount.OptionsApprovalLevel);
Print("過去4日間の取引数", " ", oAccount.FourDaysTradeCount);

Catch (Exception ex)
Print( "Error: ", " ", string.format("{0} | {1}[StackTrace]{2}", " ", ex.Source, ex.Message, ex.StackTrace) );
End;
End;

リアルタイムの資金残高や買付可能額が取得できるのが使えそうなポイントかなと思います。

AccountsProviderクラスは、オブジェクトさえ用意してあげれば通常のストラテジー用EasyLanguageでも使う事ができるので、例えば資金管理も考慮に入れたストラテジー開発がしたい場合などに活用できそうです。

気になる方は、ぜひ使ってみてください。

「株式投資 x IT」の
オンラインコミュニティに参加しませんか?

2019年5月頃から、トレステやEasyLanguageを中心とした株式投資に役立つ最新ツールやITスキルに関する情報が手に入るオンラインコミュニティを運営しています。

トレステやEasyLanguageの豊富な小ネタやサンプルコードが手に入り
チャットツール(Slack)でいつでもトレステやEasyLanguageの質問ができ
毎月開催している勉強会の収録動画がすべて視聴できて
トレステ以外にも株式投資に役立つ最新のツールやITスキルを学べる

オンライン動画講座
時系列分析用サンプルプログラム
OOELサンプルプログラム
Slackでいつでも質問可能

このように、「コンテンツ見放題」「チャット交流」という構成で、僕がが運営しているコミュニティになります。

最近トレステやEasyLanguageを始めたという方から、経験豊富な投資家・プログラマーの方まで、様々な人が集う場となっております。興味のある方はぜひ、ご参加ください。

トレードテック・オンラインの詳細を見る

コメントを残す

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