無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

ErlangでHello Worldまで。

慢性的ネタ切れ状態になってきたので、新しい言語をさわってみることにします。ということでErlangです。

まずは、Erlang Landこれから15分でErlangを始めるための資料 をみながら実行環境のerlをインストールして、「Hello World」まで。

Hello World

Hello Worldです。せっかくなので、別ファイルで関数を定義し、読み込んで使ってみます。まずは関数のコード。これをhello.erlとして保存しておきます。

  • 「-module(<モジュール名>).」でモジュールを定義します。モジュール名はファイル名と同じにする必要があるようです。
  • 「-export([<関数名>/<引数の数>]).」でモジュールで公開する関数(とその引数の数)を指定します。
  • 「%」以降はコメント行です。
-module(hello).     % モジュール名の宣言
-export([hello/0]). % モジュールで公開する関数。引数なしのhelloを呼び出せるようにする。

% Hello Worldを出力
hello() ->
  io:put_chars("Hello World!\n").

実行してみます。まずはerlを起動。

$ erl
Eshell V5.5.4  (abort with ^G)
1>

次に、上で作成したコードをコンパイル。c関数?を使います。

1> c(hello).
{ok,hello}

コンパイルできたようです。関数を呼び出してみます。「<モジュール名>:<関数名>(<引数>,...).」で実行できます。

2> hello:hello().
Hello World!
ok

Hello World!」が表示されました!

複利計算プログラム

さすがにHello World!だけだとアレなので、複利を計算するプログラムも書いてみました。再帰(←まぁ、これをしてみたかった訳ですが)を使ってループしています。

-module(sample).      
-export([compound/3]).

% BaseをRateでYear年間運用した際の複利を計算する。
compound( Base, Rate, Year ) ->
  if
    Year==0 -> Base;
    Year/=0 -> compound(Base+Base*Rate, Rate, Year-1)
  end.

実行結果です。

13> c(sample).
{ok,sample}
14> sample:compound(10000, 0.05, 10).
1.62889e+4
15> sample:compound(10000, 0.1, 10).
2.59374e+4