こんにちは。受講生の方から以下のような質問をいただきましたので、回答をしてみたいと思います!
FXおける検証作業とは、一体どんなことから手をつければ良いのでしょうか。トレーディングビューのリプレイ機能を使いチャートを眺めることはよくしています。
いわゆるバックテストですね。これはもう単刀直入に人工知能、生成AIの力を借りるのが最速だと考えます。以下、ちょっとやってみますね。
人工知能に売買戦略を作ってもらう
では、人工知能にTradingViewでバックテストするための売買戦略を作ってもらいましょう。使ったのは生成AIであるClaudeの有料版です。試しにRSIを使ったものを作成してもらいます。以下のような問いかけを入れてみました。
以下は出力されたコードです。
//@version=5
strategy("RSI Trading Strategy", overlay=true)
// Input parameters
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)
// Generate trading signals
longCondition = ta.crossover(rsiValue, rsiOversold)
shortCondition = ta.crossunder(rsiValue, rsiOverbought)
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Plot RSI
plot(rsiValue, color=color.blue, title="RSI")
hline(rsiOverbought, color=color.red, linestyle=hline.style_dashed, title="Overbought")
hline(rsiOversold, color=color.green, linestyle=hline.style_dashed, title="Oversold")
// Plot buy and sell signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
実装する方法なども教えてくれます。
なんだか至れり尽くせりですね。
TradingViewに作成したコードを貼り付け、結果を確認する
では続いて、コードをTradingViewに入力していきましょう。下にスクリーンショットも貼っていますから、参考にしてみてください。
- ① パインエディターに行く
- ② コードを貼り付ける
- ③ チャートに追加する
正しく設定ができていれば、以下のようにパフォーマンスの推移を確認することができます。下の事例では、ドル円を呼び出して確認しています。
この結果を見ながら、取引の条件などを人工知能に投げかけてカスタマイズしていけば、簡単なものならすぐに作れそうですね。
バックテストと実際の取引は同じにならない
バックテストと実際の取引とでは、結果が異なってきます。
実際の取引では、BidAskスプレッド※①の開きや、成り行き注文※②を入れた場合のスリップ幅※③などが(かなり)影響してきます。実際には、ストラテジーを決めて実戦に移す時にも、金額を最低にしてテストを繰り返す必要もあります。
※① BidAskスプレッドとは?
Bid(買値)は買主が支払う最高価格、Ask(売値)は売主が受け取る最低価格です。この2つの価格の差がスプレッドで、取引コストを表します。狭いスプレッドは流動性が高く、取引しやすいことを示します。
※② 成り行き注文とは?
成り行き注文は、現在の最良価格で即時に取引する注文方法です。買いなら Ask 価格で、売りなら Bid 価格で約定します。スプレッドが広いと、成り行き注文のコストが高くなる可能性があります
※③ スリップとは?
成り行き注文を出しても、実際の約定価格が予想と異なることがあります。これを「スリッページ」と呼びます。特に相対取引では、取引相手が提示する価格で約定するため、市場の急変や流動性不足時に大きな滑りが発生しやすいです。
戦略は相手に応じてカスタマイズすればいい
最後に取引戦略を選ぶ上での簡単なコツを書いておきますね。それは、取引相手に応じて戦略は変えれば良い・・・というものです。
だって、ドル円とビットコイン(BTCUSD)が同じような動き方をするわけがないじゃないですか。市場参加者も値動きの理由も、場が開いている時間も違います。だったら個性に応じて、こちらが対応してやれば良いんです。
たとえばゴールドであれば、中央銀行が発行する通貨の量で値動きは決まります。
日本を考えればわかりやすいです。
生産人口比率が下がり続けるにもかかわらず、稼ぐ力に応じて支出(社会保障)を切り詰める能力を失ってしまった国では、通貨を新規発行して支出に回す以外の道はありません。
つまり日本円の価値は下がる一方であり、その通貨で値付けされるゴールドの「価格」は、上がるしかありません。
ならば円建てゴールドなら、買い場と利確で売るタイミングが分かれば、十分じゃないですか?
ということで、ココスタで開発した中銀ハンターを以下の条件でバックテストしてみました。条件はシンプルです。
買シグナルで買い、売りシグナルで利確 以上!
このツールは自動売買用に作っていないので、損切り設定も何もない鬼畜状態でのテストです。まあ、やってみましょう。
以下はバックテストの結果です。
せっかくですから、結果を人工知能に読み込ませて評価してもらいましょう!
なかなか良好ですね。
広告:中銀ハンターの講義は無料公開中
もしバックテストで使った中銀ハンターのインジケータにご興味ある方は、紹介ページ内の中盤にある無料講義をご覧になってみてくださいね。ユーザ登録などは不要で、すぐに再生できます。
↑ 中銀ハンターの講義は大部分を無料で公開しています
まとめ
今回のFX検証作業の話、いかがでしたか?
AIを活用したTradingViewの戦略作成。最初は懐疑的かもしれませんが、これが意外と使えます。残業後のひとときを有効活用できそうですね。
TradingViewでのバックテストも、思ったより簡単だったのではないでしょうか?ただし、バックテストと実際の取引の差は忘れずに。BidAskスプレッドやスリッページは経験値が必要ですね。
「中銀ハンター」も興味深そうです。ゴールドの取引に関心がある方は、通勤電車で無料講義を聞いてみるのもいいかもしれません。
わたしたちには経験と冷静さがあります。新しいツールも加われば、もっと効率的なトレードができるはずです。頑張りすぎず、でも着実に。それが我々の持ち味ですね。
充実した週末を、そして来週からの相場での健闘を祈っています。ハッピー・トレーディング!