仮想通貨の自動売買プログラムを作る④: 最新の最終取引価格を常に表示する

仮想通貨の自動売買プログラムを作る過程を紹介しています。

はじめて仮想通貨の自動売買プログラムを作った過程 [Bitflyer/BTC-FX/C#]

これまでの作業で最終取引価格を取得するプログラムができましたが、今はボタンを押すと最終取引価格が表示されるようになっています。最終取引価格は常に表示したいので、今回はこれを常時表示するように変えていきたいと思います。

フォームに最終取引価格を表示する場所を追加

これまでは最初に作ったボタンとテキストボックスを適当に使っていましたが、最終取引価格を表示するため場所をちゃんと作ります。

以前フォームを作った時と同じように、ツールボックスから必要なコントロールをフォームに追加しています。

今回はラベルとテキストボックスを追加します。

AlwaysShowLatestBTCFx001

追加したラベルをクリックして、以下のプロパティを変更します。(Name がプロパティ表の上の方なのでスクショには含まれていません)

  • Name:LablePrice
  • Font: MS UI Gothic, 12pt
  • Text: 最終取引価格

AlwaysShowLatestBTCFx002

テキストボックスも以下のようにプロパティを変更します。(今度は Font がプロパティ表の下の方なのでスクショには含まれていません)

  • Name:textBoxPrice
  • Font: MS UI Gothic, 12pt

AlwaysShowLatestBTCFx003

これで最終取引価格を表示する場所ができたので、ここに毎秒単位で最終取引価格が自動的に表示されるようにしていきます。

最終取引価格を自動更新で表示する

ここまでの作業でボタンを押すとテキストボックスに最終更新価格を表示するコードがすでに実装できているので、そのコードをそのまま使い、表示箇所を新しいテキストボックスに変更します。

それができたら次はそれをボタンを押した時ではなく、自動で毎秒更新するようにします。

1. 出力するテキストボックスの変更

以下のコードを

このように変更。

画面に出力される価格を読みやすくするために 3 桁ごとに「,」を追加するために、 ltp をそのまま表示するのではなく String.Format(“{0:#,0}”, DesirializedResponse.ltp) としています。

あと、今回は追記ではなく上書きにしたいので、追記する AppendText ではなく = で直接値を代入するようにしました。

これでボタンを押したときの出力先が新たに作ったテキストボックスに変わりました。

AlwaysShowLatestBTCFx004

最終取引価格を自動的に更新する

今回処理は Task として関数を定義しているので、これを毎秒ループするようにして、ボタンを押した時ではなくプログラムを起動したときから実行されるようにすればよい。

これには該当箇所の処理を While(true) で永久的にループするようにして、毎回 await Task.Delay(1000) で 1 秒遅延するようにする。

後はこの関数 ( GetCurrentBtcFxPrice() )を呼び出す場所を Button1_Click から Form1 の初期化処理の箇所に移動。ついでにわかりやすくするために、関数名を Job1 から JobUpdatePrice に変更。

これでアプリ起動直後から毎秒自動的に最終取引価格を表示してくれるようになった。

自動売買プログラムの作成状況

今回で最終取引価格を自動的に毎秒更新して表示してくれるようになりました。

自動売買プログラムの今時点ではこんな感じの見た目です。

AlwaysShowLatestBTCFx004

以下が自動売買プログラムのコードです。

最終取引価格がわかるようになったので、次はこのプログラムから実際に取引をしていきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする