kuwana-kbの開発/学習ブログ

プログラミング、クラウドインフラのWeb開発/学習ブログ

Udemy_Go入門(2):インディケーターの実装  

UdemyのGolang講座
今日はインディケーターの実装

やったこと

  • SMA(Simple Moving Avrage)/EMA(Exponential Moving Average)の実装
    • SMAとは単純移動平均線のことで、指定した日数の平均値を線グラフで表示することを指す
    • EMAと指数平滑移動平均線のことで、SMAに直近の値を重視するような指数を加えたものを指す
    • チャート上で日数を指定して、3種類にSMA/EMAをリアルタイム表示できるようにした f:id:kuwana-kb:20190114184940p:plain
  • BB(BollingerBandsの実装

    • BBとは、移動平均線標準偏差を表す線を指す
    • 移動平均線とBBの乖離が大きくなったときに、売り買いのシグナルとして使える場合がある
    • ここまでの基本的な計算式はgo-talibパッケージを使用 github.com
  • 一目均衡表の実装
    一目均衡表は以下の式からなる。

転換線 = (9-day high + 9-day low) / 2
基準線 = (26-day high + 26-day low) / 2
先行スパン1 = (Tenkan + Kijun) / 2
先行スパン2 = (52-day high + 52-day low) / 2
遅行スパン = Close plotted 26 days in the past

go-talibには一目均衡表を計算する関数がないため、自前で実装する
f:id:kuwana-kb:20190114204811p:plain

わかっとこと

  • 複数の機能を実装する中で、ディレクトリ構成の役割がわかってきた

Udemy_Go入門(1):Webインターフェースの作成

UdemyのGo講座。 今日はWebインターフェース。

  • やりたいこと
    • apiから値を取得して、値を3秒おきに表示していく
    • handlerでchart.htmlを出力して
    • chart.htmlがcandleapiから3秒おきに値を取得し
    • 結果を出力する という流れ
  • 方法
    • Ajaxで非同期にCandleStick情報をバックエンドから取得する
    • googleapisでJQueryを使う
  • サンプル
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
    function send () {
        var params = {
            "key1": "value1",
            "key2": "value2"
        }
        $.get("/api/", params).done(function (data) {
            console.log(data)
            var slices = data["slices"]
            $('#dashboard_div').append(slices[0].open + "<br>")
        })
    }
    setInterval(send, 1000 * 3)
    window.onload = function () {
        send()
    }
</script>
  • 実行結果 f:id:kuwana-kb:20190109214154p:plain
  • TIPS