日本語
2. FXDaemonの使用に関する基本的なヘルプ
2.1 起動
2.1.1 Windows
  • バックテストモードで起動します。
  • > fxTrade.exe -s --ini=fxTrade-bktest.ini
    
  • 自動取引モードでデモアカウントを起動します。
  • > fxTrade.exe -s --ini=fxTrade-demo.ini
    
  • 自動取引モードでデモアカウントとバーチャルアカウントを順次起動します。
  • > start /b fxTrade.exe -s --ini=fxTrade-demo.ini
    ↓↓↓ デモアカウントの起動が終わってから、バーチャルアカウントを起動します。 ↓↓↓
    > start /b fxTrade.exe -s --ini=fxTrade-virtual.ini
    
  • タスクスケジューラに登録して毎週月曜日の4:00にデモアカウントを起動します。
  • > schtasks /create /tn "FXDaemon-demo" /tr "fxTrade.exe -s --ini=fxTrade-demo.ini" /sc weekly /d mon /st 04:00:00
    
2.1.2 Linux
  • FXDaemonをインストールした場所に移動して環境変数設定のシェルスクリプトを実行します。
  • $ source setenv.sh
    
  • バックテストモードで起動します。
  • $ fxTrade -s --ini=fxTrade-bktest.ini
    
  • 自動取引モードでデモアカウントを起動します。
  • $ fxTrade -s --ini=fxTrade-demo.ini
    
  • 自動取引モードでデモアカウントとバーチャルアカウントを順番に起動します。
  • $ nohup fxTrade -s --ini=fxTrade-demo.ini 2>&1 &
    ↓↓↓ デモアカウントの起動が終わってから、バーチャルアカウントを起動します。 ↓↓↓
    $ nohup fxTrade -s --ini=fxTrade-virtual.ini 2>&1 &
    
  • crontabを編集して毎週月曜日の4:00にデモアカウントを起動します。
  • > vi /etc/crontab
    > 0 4 * * 1 [user] source [install-path]/setenv.sh && fxTrade -s --ini=fxTrade-demo.ini
    
  • crontabを編集して10分おきにfxTrade.shを実行して、デモアカウントとバーチャルアカウントの稼働を監視します。
  • 監視スクリプトは以下の機能を提供します。自分のニーズに合わせて修正してください。
    1. 毎週月曜日の4:00と4:10にデモアカウントとバーチャルアカウントを順番に起動します。
    2. 異常終了した場合は再起動します。
    3. ハングアップした場合はプロセスを強制終了させてから再起動します。
    4. 再起動する際には指定のメールアドレスに情報を送信します。
    (mail_to変数に送信先の設定と、sendmailコマンドに関する設定が必要です。)
    > vi /etc/crontab
    > */10 * * * * [user] [install-path]/fxTrade.sh
    
2.2 終了
2.2.1 Windows, Linux

以下の2つのうちいずれかの操作で終了します。

  • qのキーを押す (フォアグラウンドで起動した場合だけ)
  • iniファイルの設定によって指定時間後に自動終了
2.2.2 Linuxのみ
$ ps -ef | grep fxTrade
$ kill -3 [pid]  ← psで取得したプロセスID
2.3 コマンドラインスイッチ
  • [--ini=FILE]
  • iniファイルを指定します。指定しない場合はfxTrade.iniを読み込みます。
  • [--license=FILE]
  • ライセンスファイルを指定します。指定しない場合はfxTrade.licを読み込みます。
  • -s, --start [--ini=FILE] [--license=FILE]
  • iniファイルの設定によってバックテストモードまたは自動取引モードでシステムトレードを起動します。
    ライセンスの有効期限が切れている場合は2口座目以降の自動取引モードが起動できません。
  • -r, --save-hisdata-add [--ini=FILE]
  • iniファイルの中で設定されている開始と終了時間によってブローカーの取引サーバーからヒストリカルデータを取得して追加モードでデータファイルに書き込みます。
  • -R, --save-hisdata-new [--ini=FILE] --start-date=DATE --end-date=DATE
  • ブローカーの取引サーバーからヒストリカルデータを取得して新規モードでデータファイルに書き込みます。
  • -h, --print-hisdata [--ini=FILE] --symbol=SYMBOL --period=PERIOD --start-date=DATE --end-date=DATE
  • ブローカーの取引サーバーからヒストリカルデータを取得して標準出力に出力します。
  • -m, --print-mktdata [--ini=FILE] --symbol=SYMBOL
  • ブローカーの取引サーバーからマッケートデータを取得して標準出力に出力します。
  • -a, --print-account [--ini=FILE]
  • ブローカーの取引サーバーからアカウント情報を取得して標準出力に出力します。
  • -j, --run-js [--ini=FILE] [PARAM1, PARAM2, ...]
  • iniファイルの中で設定されているjsファイルを実行します。[PARAM1, ...]は入力引数としてjsファイルに渡されます。トレーディングインターフェースに関するビルトイン関数は利用できません。
  • -n, --issue-serial-no
  • シリアル番号を発行します。
  • -e, --check-expiration-date [--license=FILE]
  • ライセンスの有効期限を確認します。
2.4 バックテスト
  • 生成したデータは`Order`、`Trade`と`TsContext`のテーブルに登録されます。
  • 再度バックテストを行う場合、重複キーの一意制約エラーを防ぐために、[ticketno]を修正するか、
  • もしくは前回作成されたデータをクリアするSQLを実行してください。
    $ mysql -ufxtrade -pfxtrade scm_fxtrade -e"set @account_id:='bt001'; source sql/delete.sql;"
    
2.5 ポジション集計
  • 年別に集計
  • $ mysql -ufxtrade -pfxtrade scm_fxtrade -e"set @account_id:='bt001'; source sql/year.sql;"
    
  • 年別>月別に集計
  • $ mysql -ufxtrade -pfxtrade scm_fxtrade -e"set @account_id:='bt001'; source sql/month.sql;"
    
  • 年別>週別に集計
  • $ mysql -ufxtrade -pfxtrade scm_fxtrade -e"set @account_id:='bt001'; source sql/week.sql;"
    
  • 商品別に集計
  • $ mysql -ufxtrade -pfxtrade scm_fxtrade -e"set @account_id:='bt001'; source sql/symbol.sql;"
    
  • 商品別>取引メソッド別に集計
  • $ mysql -ufxtrade -pfxtrade scm_fxtrade -e"set @account_id:='bt001'; source sql/method.sql;"