[Protra-members] Protraの言語について

Back to archive index

Daisuke Arai protr****@darai*****
2004年 2月 21日 (土) 10:48:04 JST


荒井です。

Protraの言語なんですが、TIlibのようにオブジェクト指向化ができるととても
便利なことが分かったので、思い切ってオブジェクト指向の新しい言語へとマク
ロの形式を変えることを考えているんですが、皆さんどう思われますか?

私は以前からコメントの形を//にしたことや、インクルードの形を#include<>で
書いているところがあまり気に入らなくなっていたので、ぜひやりたいです。

もちろん、下位互換性が保てないので、リリースはProtra++みたいな新しい名前
で出せばいいと思います。互換性がないというところはちょっと気がひけるとこ
ろだろうと思いますが、ユーザも多いわけではないですし、キレイな言語にして
おいた方が後々楽しいと思うのです。私がとりあえず想像してるのは下のような
感じです。まだ適当なので、もしやるのであれば、色々アイデアを出し合ってい
きたいです。

ただ、こんな形の言語のインタプリタを我々の力で作れるのかと言われると、少
々疑問です。

#============================================================
# ルール
# 5日前のMA(20)と終値の乖離率が-10%以下なら100株買う
#============================================================
require('hoge')

class MA {
	def initialize(days) {
		@days = days
		@at = at
		@index = Data.index()
		@sum = 0.0

		i = 0
		while (i < @days) {
			@sum += Data.close()|@at - i|
			i += 1
		}
	}

	def value() {
		if (Data.index() != @index) {
			@sum -= Data.close()|- @ days|
			@sum += Data.close()
			@index = Data.index()
		}

		return @sum/@days
	}
}

class System {
	def initialize() {
		@ma20_5 = new MA(20)|-5|
	}

	def main() {
		ma20_5 = @ma20_5.value()
		r = (Data.close()|-5| - ma20_5)/ma20_5
		if (r <= -10)
			Trade.buy(100)
	}
}




Protra-members メーリングリストの案内
Back to archive index