無料公開|FO Simple SMA Template
TradingView
でまず試せる、FO連携対応のシンプル
自動売買
テンプレート
「まずは無料で試したい」
「
TradingView
の通知で
自動売買
の流れを体験したい」
「難しいロジックではなく、分かりやすい戦略から始めたい」
そんな方向けに、FO_Utilベースで構築した無料
ストラテジー
を公開しています。
ゴールデンクロス
(GC)・
デッドクロス
(DC)を使った、非常にシンプルな売買ロジックです。
余計な装飾を省き、“自分で育てられる土台” として使いやすい構成にしています。
このストラテジーでできること
短期
移動平均線
と長期
移動平均線
のクロスで売買
TradingView
バックテスト
ですぐ検証可能
FO_Utilベースで通知・FO連携が簡単
ATR
ベースの
損切り
・利確搭載
引け
決済対応
時間指定
エントリー
対応
⚠️ 注意事項
本ページの
ストラテジー
は利益を保証するものではありません。
必ず
バックテスト
を行ってください
資金管理・
リスク管理
を徹底してください
自身のトレード環境に合わせて最適化してください
FO Simple SMA Template(コード全文) //@version=6
import kabutech/FO_Util/33 as util
strategy(
"FO Simple SMA Template",
overlay = true,
default_qty_value = 1,
initial_capital = 10000000
)
//====================================================
// USER INPUT
//====================================================
marketTypeInput = input.string(
"JP_STOCK",
title="市場タイプ",
options=["JP_STOCK","JP_FUT"]
)
fastLen = input.int(5, "短期MA")
slowLen = input.int(25, "長期MA")
//====================================================
// ■ 出口管理(ATR)
//====================================================
atrLength = input.int(14, "ATR期間", group="出口管理")
atrLimitMult = input.float(1.5, "固定利確/追従発動倍率", step=0.1, group="出口管理")
atrStopMult = input.float(2.0, "損切り倍率", step=0.1, group="出口管理")
trailAtrMult = input.float(0.0, "トレール幅 (0で固定利確)", step=0.1, group="出口管理")
maxStopPerc = input.float(2.0, "最大損切り(%)", step=0.1, group="出口管理")
//====================================================
// ■ SESSION管理
//====================================================
useSessionFilter = input.bool(true, "エントリー時間制限", group="SESSION")
startHour = input.int(9, "開始", inline="s", group="SESSION")
startMinute = input.int(0, " ", inline="s", group="SESSION")
endHour = input.int(14, "終了", inline="e", group="SESSION")
endMinute = input.int(30, " ", inline="e", group="SESSION")
useSessionClose = input.bool(true, "引け決済", group="SESSION")
closeHour = input.int(15, "時", inline="c", group="SESSION")
closeMinute = input.int(0, "分", inline="c", group="SESSION")
//====================================================
// ENTRY TIME CONTROL
//====================================================
allowEntry = util.f_allowEntry(
useSessionFilter,
startHour,
startMinute,
endHour,
endMinute,
marketTypeInput
)
//====================================================
// BASIC CALC
//====================================================
fastMA = ta.sma(close, fastLen)
slowMA = ta.sma(close, slowLen)
gc = ta.crossover(fastMA, slowMA)
dc = ta.crossunder(fastMA, slowMA)
atrValue = ta.atr(atrLength)
//====================================================
// ENTRY LOGIC
//====================================================
longSignal =
allowEntry and
gc and
barstate.isconfirmed
shortSignal =
allowEntry and
dc and
barstate.isconfirmed
util.f_executeEntry(longSignal, shortSignal)
//====================================================
// EXIT LOGIC
//====================================================
var float highest = na
var float lowest = na
[longStop, shortStop, longLimit, shortLimit, _highest, _lowest] = util.f_calcATRExit(
strategy.position_avg_price,
atrValue,
highest,
lowest,
high[1],
low[1],
trailAtrMult,
atrStopMult,
atrLimitMult,
strategy.position_size > 0,
strategy.position_size < 0,
maxStopPerc
)
highest := _highest
lowest := _lowest
strategy.exit("CLOSE_LONG", from_entry="LONG", stop=longStop, limit=longLimit)
strategy.exit("CLOSE_SHORT", from_entry="SHORT", stop=shortStop, limit=shortLimit)
//====================================================
// SESSION CLOSE
//====================================================
util.f_executeSessionClose(
useSessionClose,
closeHour,
closeMinute,
marketTypeInput
)
//====================================================
// PLOT
//====================================================
plot(fastMA, color=color.orange, linewidth=2, title="短期MA")
plot(slowMA, color=color.blue, linewidth=2, title="長期MA")
plotshape(gc, title="GC", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=color.lime)
plotshape(dc, title="DC", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=color.red)
このテンプレートの見方 本テンプレートは、
を分離した構成になっています。
今回実際に売買判定を行っている部分は以下のみです。
fastMA = ta.sma(close, fastLen)
slowMA = ta.sma(close, slowLen)
gc = ta.crossover(fastMA, slowMA)
dc = ta.crossunder(fastMA, slowMA)
longSignal =
allowEntry and
gc and
barstate.isconfirmed
shortSignal =
allowEntry and
dc and
barstate.isconfirmed
つまり、
移動平均を
EMA
へ変更
RSI
を追加
出来高
フィルター追加
DMI
フィルター追加
などを行う場合は、この部分を中心に改造していく形になります。
ロジック概要 本テンプレートは、
というシンプルな移動平均クロス戦略です。
売買ロジックを極力シンプルにしているため、
などのフィルター追加の練習台としても利用できます。
共通処理については下記FO_Utilをご覧ください。
この無料版は“入口”です なぜ無料公開しているのか 多くの方が最初に悩むのは、
Pine Script
が難しい
何を作ればいいか分からない
通知設定が面倒
自動売買
まで辿り着けない
この部分です。
そのため、まずは動く状態の土台 として使えるテンプレートを公開しています。
まずは無料で、動かしてみてください 本テンプレートは、あえてシンプルに作っています。
最初から難しい戦略を追う必要はありません。
まずはシンプルなロジックで、
この流れを体験することが、最短ルートです。
📌 次のステップ:より実戦向けに発展させるには ここまでのテンプレートは、移動平均クロスのみで売買するシンプルな構成です。
しかし実際の運用では、
ダマシを減らしたい
トレンド
相場だけ参加したい
レンジ
相場を避けたい
といった課題が出てきます。
そのため実戦では、
エントリー
シグナルだけで判断するのではなく、複数のフィルターを組み合わせて売買精度を高めることが一般的です。
そこで、以下のような機能を搭載した発展版
ストラテジー
も用意しています。
発展版で追加している要素
EMA
/
SMA
切り替え
クロス後○本以内
エントリー
出来高
フィルター
ヒゲ
フィルター
DMI
方向フィルター
ADX
トレンド
強度判定
Chopによる相場環境判定
ATR
ベースの出口管理
トレーリングストップ
セッション制御
FO連携対応
FO Simple SMAは学習用・改造用の土台として設計していますが、実際の運用では複数のフィルターを組み合わせて
エントリー
精度を高めるケースが一般的です。
無料版をベースに、実際の運用を意識した構成を見てみたい方は、こちらも参考にしてみてください。
👉️ 無料公開|実戦向けフィルター搭載版 FO SMA CROSS Strategy Template
イメージ 【エントリートリガー】
GC / DC 発生
↓
【環境認識フィルター群(FO_Util)】
・出来高確認 (閑散相場の除外)
・ヒゲ確認 (目先の逆張りリスク排除)
・DMI確認 (トレンドの方向性が一致しているか)
・ADX確認 (十分な勢い・ボラティリティがあるか)
・Chop確認 (日足レベルでもみ合い中でないか)
↓
【安全な執行】
確定足でのエントリー
↓
【自動売買へのシームレスな接続】
TradingViewアラート → Webhook → FO経由で実口座へ発注
単純なGC戦略と比較すると、
無駄な
エントリー
の削減
トレンド
相場のみ参加
レンジ
相場のみ参加
エントリー
タイミングの改善
などを狙えるようになります。
より実戦向けの戦略を探したい方は、テンプレート一覧もご覧ください。
👉 戦略テンプレート一覧を見る
実口座へつなげたい方へ
TradingView
の
バックテスト
だけで終わらせず、
そのまま日本株の実注文へ接続したい方には、FO(Flex Order)をご用意しています。
TradingView
アラート
→ 実口座注文まで、自動化環境を構築可能です。
👉 FO(Flex Order)を見る