るどさんのブログ

フリーランスプログラマーがライフハック的なことや他色々なことについて徒然なるままに語るブログ

FXで利益を得るために200万円のツールは必要?

f:id:rudosan:20190119235212p:plain

 

世の中には売買のシグナルを表示するだけで200万円もする一般投資家向けのツールがあるようだ。

 

大金を払っても中身はブラックボックスで、どのような戦略が使われているのか不明。

ツールを買っただけで儲かるというのは虫のいい話で、

市場は常に変化するので、市場に合わせた新しい戦略を組み立てられなければ

いずれは利益が得られなくなる。大金を払っても最終的には大損ということもあり得るのだ。

 

そこでお勧めしたいのは『TradingView』。世界中で取引されているドルをはじめとする法定通貨ビットコインなどの仮想通貨、金などの金融商品のチャートがブラウザ上で見ることが出来る。

 

基本的に無料で使えるが、より高度な機能を使うことができる有料のプランもある。

しかし有料プランに登録しなくても、チャートを使って価格の推移を分析するなど普通に使う分には、十分使うことができる。

更に、冒頭で取り上げたような特定の条件でシグナルを表示することは十数行のプログラムで可能である。そして、過去のデータから作成した戦略が有効なのかをバックテストによって検証することも可能なのだ。

 

例として、トレンドフォローが発生したときに押し目でエントリーするシグナルを表示する機能を作成してみた。

トレードビューのPineエディタに以下のプログラムをコピー&ペーストしてパラメータを市場に合わせればいい。

また、レンジ相場ではエントリーの条件を真逆にすることができる、天井でショート、底でロングするという具合に。

 

 

セールストークに乗せられて高いツールを購入してもそのロジックが有効かどうかは分からない。むしろいつまでも有効ということは無いだろう。

 

少し勉強すれば、実際に市場に向き合うための戦略を作るスキルが手に入るのだ。

コスト的にも実用性を考えても、『TradingView』を使う方が、ずっと良いと思う思うのですが、いかがでしょうか?

 

//@version=3
strategy("BFFXMarketFollower", overlay=true,initial_capital= 700000,default_qty_value = 1)

range = 40000

ma_fast1 = ema(open, input(100))
ma_fast2 = ma_fast1 + range
ma_fast3 = ma_fast1 - range

ma_fast2_x = ma_fast1 + (range*4)
ma_fast3_x = ma_fast1 - (range*4)

plot(ma_fast1)
plot(ma_fast2)
plot(ma_fast3)

length1 = input(title="Length", type=integer, minval=1, maxval=12, defval=1)
length2 = input(title="Length", type=integer, minval=1, maxval=31, defval=1)

length3 = input(title="Length", type=integer, minval=1, maxval=12, defval=1)
length4 = input(title="Length", type=integer, minval=1, maxval=31, defval=30)

start_time = timestamp(2018, length1 ,length2, 00, 00)
end_time = timestamp(2019, length3, length4, 00, 00)
is_work = start_time <= time and time <= end_time ? true : false

if(is_work)
longCondition = ma_fast2_x > close and ma_fast2 < close and close < open ? true:false
shortCondition = ma_fast3_x < close and ma_fast3 > close and close > open ? true:false
if (longCondition)
strategy.entry("Long", strategy.long)
else
if (shortCondition)
strategy.entry("Short", strategy.short)
//利確
profit_profit = input(40000,"profit")
//profit_trail = input(40000,"loss")
profit_loss = input(10000,"loss")
strategy.exit("Profit","Long",profit=profit_profit,loss=profit_loss )
strategy.exit("Profit","Short",profit=profit_profit,loss=profit_loss )