Googleアカウントでログインしてください
ゴーリトレード
無料検証を始める過去の一部(例:3年分)でルールを最適化し、次の期間(例:1年)そのルールでバックテストを行う
少しずつ期間をズラして何回も繰り返すことで,トレード手法の信頼性チェックが可能となる
Random:10%の確率でエントリー
random.randint(1, 10) > 9
ダウ理論:k1期間の高値を、直近の終値が更新したらエントリー
max(High[i-k1:i-1]) < Close[i]
RSI:RSIが30を下から上に抜けたらエントリー(売られすぎからの反発)
(RSI(k1, i-1) < 30) and (RSI(k1, i) > 30)
EMA Cross Up:短期EMAが長期EMAを下から上に抜けたらエントリー(ゴールデンクロス)
(EMA(k1, i-1) < EMA(k1*2, i-1)) and (EMA(k1, i) > EMA(k1*2, i))
MACD Cross:MACDラインがシグナルラインを下から上に抜けたらエントリー
(MACD(k1, i-1) < SIGNAL(k1, i-1)) and (MACD(k1, i) > SIGNAL(k1, i))
Bollinger Band Break:終値がボリンジャーバンド下限を上抜けたらエントリー
(Close[i-1] < BBL(k1, i-1)) and (Close[i] > BBM(k1, i))
ATR Breakout:ATRが拡大し、直近k1本の終値最高値を更新したらエントリー
(ATR(k1, i) > ATR(k1, i-1)) and (Close[i] > max(Close[i-k1:i]))
ADX Trend:ADXが25を上抜け(トレンド発生)かつ上昇したらエントリー
(ADX(k1, i-1) < 25) and (ADX(k1, i) > 25) and (Close[i] > Close[i-1])
Stochastic Cross:ストキャスが売られすぎ圏(30以下)でゴールデンクロスしたらエントリー
(STOCHK(k1, i-1) < STOCHD(k1, i-1)) and (STOCHK(k1, i) > STOCHD(k1, i)) and (STOCHK(k1, i) < 30)
High Break:直近5本の高値を更新し、EMAより上にあるときエントリー
(High[i] > max(High[i-5:i-1])) and (Close[i] > EMA(k1, i))
Trend Pullback:EMA・長期EMAより上で、直近の押し目からEMA付近まで戻ったらエントリー
(Close[i] > EMA(k1, i)) and (Close[i] > EMA(200, i)) and (min(Low[i-6:i-1]) > EMA(k1, i) * 0.975)
Random:10%の確率でイグジット
random.randint(1, 10) > 9
ダウ理論(Low Break):k1期間の安値を終値が下抜けたらイグジット
min(Low[i-k1:i-1]) > Close[i]
RSI Overbought:RSIが70を上から下に抜けたらイグジット(買われすぎからの反落)
(RSI(k1, i-1) > 70) and (RSI(k1, i) < 70)
EMA Cross Down:短期EMAが長期EMAを上から下に抜けたらイグジット(デッドクロス)
(EMA(k1, i-1) > EMA(k1*2, i-1)) and (EMA(k1, i) < EMA(k1*2, i))
MACD Cross Exit:MACDラインがシグナルラインを上から下に抜けたらイグジット
(MACD(k1, i-1) > SIGNAL(k1, i-1)) and (MACD(k1, i) < SIGNAL(k1, i))
Bollinger Exit:終値がボリンジャーバンド上限に到達したらイグジット
(Close[i-1] < BBU(k1, i-1)) and (Close[i] >= BBU(k1, i))
ATR Exit:ATRが縮小、または終値が前足終値を下回ったらイグジット
(ATR(k1, i) < ATR(k1, i-1)) or (Close[i] < Close[i-1])
ADX Exit:ADXが低下、または終値が前足終値を下回ったらイグジット
(ADX(k1, i) < ADX(k1, i-1)) or (Close[i] < Close[i-1])
Stochastic Exit:ストキャスが買われすぎ圏(70以上)でデッドクロスしたらイグジット
(STOCHK(k1, i-1) > STOCHD(k1, i-1)) and (STOCHK(k1, i) < STOCHD(k1, i)) and (STOCHK(k1, i) > 70)
HIST Exit:MACDヒストグラムがプラスからマイナスに転換したらイグジット
(HIST(k1, i-1) > 0) and (HIST(k1, i) < 0)
EMA + ATR Stop:EMA下抜け・直近安値割れ・ATR比率が大きい三条件が揃ったらイグジット
(Close[i] < EMA(k1, i)) and (Close[i] < min(Low[i-3:i-1])) and (ATR(k1, i) / Close[i] > 0.025)
プルダウンで Custom を選ぶと、自分だけのオリジナル条件式を入力できます。
条件式は True / False を返す Python の式 として記述してください(1行)。
and・or・not で複数条件を組み合わせることができます。
| 変数名 | 意味 | 使用例 |
|---|---|---|
Close[i] | 現在足の終値 | Close[i] > Close[i-1] |
Open[i] | 現在足の始値 | Open[i] < Close[i] |
High[i] | 現在足の高値 | High[i] > max(High[i-5:i-1]) |
Low[i] | 現在足の安値 | Low[i] < min(Low[i-5:i-1]) |
i | 現在のバー番号(インデックス) | スライス指定などに使用 |
k1 | 最適化される期間パラメータ1 | EMA(k1, i) |
k2 | 最適化される期間パラメータ2 | EMA(k2, i) |
| 関数 | 意味 | 使用例 |
|---|---|---|
EMA(period, i) | 指数移動平均 | EMA(k1, i) > EMA(k1*2, i) |
SMA(period, i) | 単純移動平均 | Close[i] > SMA(k1, i) |
RSI(period, i) | RSI(0〜100) | RSI(k1, i) < 30 |
ATR(period, i) | ATR(平均真値幅) | ATR(k1, i) > ATR(k1, i-1) |
MACD(period, i) | MACDライン | MACD(k1, i) > SIGNAL(k1, i) |
SIGNAL(period, i) | MACDシグナルライン | SIGNAL(k1, i-1) > MACD(k1, i-1) |
HIST(period, i) | MACDヒストグラム | HIST(k1, i) > 0 |
BBL(period, i) | ボリンジャーバンド 下限(-2σ) | Close[i] > BBL(k1, i) |
BBM(period, i) | ボリンジャーバンド 中央(移動平均) | Close[i] > BBM(k1, i) |
BBU(period, i) | ボリンジャーバンド 上限(+2σ) | Close[i] < BBU(k1, i) |
ADX(period, i) | ADX(トレンド強度) | ADX(k1, i) > 25 |
STOCHK(period, i) | ストキャスティクス %K | STOCHK(k1, i) < 20 |
STOCHD(period, i) | ストキャスティクス %D | STOCHD(k1, i) > STOCHK(k1, i) |
max(リスト) | リストの最大値 | max(High[i-10:i]) |
min(リスト) | リストの最小値 | min(Low[i-10:i]) |
| 用途 | 条件式 | 意味 |
|---|---|---|
| Entry | EMA(k1, i-1) < EMA(k1*2, i-1) and EMA(k1, i) > EMA(k1*2, i) | EMAのゴールデンクロス |
| Entry | RSI(k1, i-1) < 30 and RSI(k1, i) > 30 | RSI売られすぎからの回復 |
| Entry | max(High[i-k1:i-1]) < Close[i] | k1本の高値を終値が更新 |
| Exit | EMA(k1, i-1) > EMA(k1*2, i-1) and EMA(k1, i) < EMA(k1*2, i) | EMAのデッドクロス |
| Exit | RSI(k1, i-1) > 70 and RSI(k1, i) < 70 | RSI買われすぎからの反落 |
| Exit | ATR(k1, i) < ATR(k1, i-1) or Close[i] < Close[i-1] | ATR縮小 または 下落 |
⚠️ セキュリティのため、使用できるのは上記の関数・変数のみです。
import・open・os などのシステム操作は使えません。
MID vs MinLow30:エントリー足の中値と直近30本安値の距離×2を損切り幅とする(デフォルト)
((High[entry_i] + Low[entry_i]) / 2 - min(Low[entry_i-30:entry_i])) * 2
ATR x2:ATR(k1)の2倍を損切り幅とする(トレンド相場向け)
ATR(k1, entry_i) * 2
ATR x1:ATR(k1)の1倍を損切り幅とする(タイトな損切り)
ATR(k1, entry_i) * 1
Fixed 1%:エントリー価格の1%を損切り幅とする
entry_price * 0.01
Fixed 2%:エントリー価格の2%を損切り幅とする
entry_price * 0.02
Candle Low:エントリー足の高値・安値幅を損切り幅とする
High[entry_i] - Low[entry_i]
Recent Low k1:直近k1本の安値をエントリー価格から引いた値を損切り幅とする
entry_price - min(Low[entry_i-k1:entry_i])
None loss cut:損切りなし。エントリー価格の100%を損切り幅とするため実質トリガーされない
entry_price * 1.0
Custom:損切り幅(価格差)を返すPython式を直接入力する。
入力例: ATR(k1, i) * 1.5 / Close[i] * 0.015 / abs(Close[i] - min(Low[i-k1:i]))
損切りがヒットしたとき、資産が何%減少するようなポジションサイズにするかを指定する。
大きいほど利益も損失も拡大する。推奨は5〜20%。デフォルトは5%。
基本的に変更不要。Custom式で2つの変数を使いたいなら、kの数:2 として k1・k2 を使う。
kの最適化回数のこと。探索範囲が狭いほど少ない回数でよい。デフォルトは3回。
スタートの資産は1、ポジションサイズは損切り時に資産がリスクレートの%になるように調整、スプレッドは価格の0.1%、日足。
9年運用後の総資産倍率(例:1.6倍、1000倍)、相関係数(数字が1に近ければ資産推移が右肩上がりである)をグラフで出力する。
Optimize trading rules on a portion of historical data (e.g. 3 years), then backtest on the next period (e.g. 1 year).
By repeating this across shifting windows, you can validate the robustness of a trading strategy.
Random: Enter with 10% probability (random baseline).
random.randint(1, 10) > 9
Dow Theory: Enter when the latest close breaks above the highest high of the last k1 bars.
max(High[i-k1:i-1]) < Close[i]
RSI Oversold: Enter when RSI crosses up through 30 (oversold recovery).
(RSI(k1, i-1) < 30) and (RSI(k1, i) > 30)
EMA Cross Up: Enter on a golden cross (fast EMA crosses above slow EMA).
(EMA(k1, i-1) < EMA(k1*2, i-1)) and (EMA(k1, i) > EMA(k1*2, i))
MACD Cross: Enter when MACD line crosses above the signal line.
(MACD(k1, i-1) < SIGNAL(k1, i-1)) and (MACD(k1, i) > SIGNAL(k1, i))
Bollinger Band Break: Enter when close breaks above the lower Bollinger Band.
(Close[i-1] < BBL(k1, i-1)) and (Close[i] > BBM(k1, i))
ATR Breakout: Enter when ATR is expanding and close makes a new k1-bar high.
(ATR(k1, i) > ATR(k1, i-1)) and (Close[i] > max(Close[i-k1:i]))
ADX Trend: Enter when ADX crosses above 25 (trend emerging) and price is rising.
(ADX(k1, i-1) < 25) and (ADX(k1, i) > 25) and (Close[i] > Close[i-1])
Stochastic Cross: Enter on a golden cross in the oversold zone (below 30).
(STOCHK(k1, i-1) < STOCHD(k1, i-1)) and (STOCHK(k1, i) > STOCHD(k1, i)) and (STOCHK(k1, i) < 30)
High Break: Enter when the 5-bar high is broken and price is above EMA.
(High[i] > max(High[i-5:i-1])) and (Close[i] > EMA(k1, i))
Trend Pullback: Enter when price is above EMA & long-term EMA and has pulled back near EMA.
(Close[i] > EMA(k1, i)) and (Close[i] > EMA(200, i)) and (min(Low[i-6:i-1]) > EMA(k1, i) * 0.975)
Random: Exit with 10% probability (random baseline).
random.randint(1, 10) > 9
Low Break (Dow Theory): Exit when close breaks below the lowest low of the last k1 bars.
min(Low[i-k1:i-1]) > Close[i]
RSI Overbought: Exit when RSI crosses down through 70 (overbought reversal).
(RSI(k1, i-1) > 70) and (RSI(k1, i) < 70)
EMA Cross Down: Exit on a dead cross (fast EMA crosses below slow EMA).
(EMA(k1, i-1) > EMA(k1*2, i-1)) and (EMA(k1, i) < EMA(k1*2, i))
MACD Cross Exit: Exit when MACD line crosses below the signal line.
(MACD(k1, i-1) > SIGNAL(k1, i-1)) and (MACD(k1, i) < SIGNAL(k1, i))
Bollinger Exit: Exit when close reaches the upper Bollinger Band.
(Close[i-1] < BBU(k1, i-1)) and (Close[i] >= BBU(k1, i))
ATR Exit: Exit when ATR is contracting or close falls below the previous close.
(ATR(k1, i) < ATR(k1, i-1)) or (Close[i] < Close[i-1])
ADX Exit: Exit when ADX is declining or close falls below the previous close.
(ADX(k1, i) < ADX(k1, i-1)) or (Close[i] < Close[i-1])
Stochastic Exit: Exit on a dead cross in the overbought zone (above 70).
(STOCHK(k1, i-1) > STOCHD(k1, i-1)) and (STOCHK(k1, i) < STOCHD(k1, i)) and (STOCHK(k1, i) > 70)
HIST Exit: Exit when the MACD histogram turns from positive to negative.
(HIST(k1, i-1) > 0) and (HIST(k1, i) < 0)
EMA + ATR Stop: Exit when price breaks below EMA, recent low, and ATR ratio is high.
(Close[i] < EMA(k1, i)) and (Close[i] < min(Low[i-3:i-1])) and (ATR(k1, i) / Close[i] > 0.025)
Select Custom to enter your own Python expression as the condition.
The expression must return True or False (single line).
You can combine conditions with and, or, not.
| Variable | Meaning | Example |
|---|---|---|
Close[i] | Current bar close | Close[i] > Close[i-1] |
Open[i] | Current bar open | Open[i] < Close[i] |
High[i] | Current bar high | High[i] > max(High[i-5:i-1]) |
Low[i] | Current bar low | Low[i] < min(Low[i-5:i-1]) |
i | Current bar index | Used for slicing |
k1 | Optimized period parameter 1 | EMA(k1, i) |
k2 | Optimized period parameter 2 | EMA(k2, i) |
| Function | Meaning | Example |
|---|---|---|
EMA(period, i) | Exponential Moving Average | EMA(k1, i) > EMA(k1*2, i) |
SMA(period, i) | Simple Moving Average | Close[i] > SMA(k1, i) |
RSI(period, i) | RSI (0–100) | RSI(k1, i) < 30 |
ATR(period, i) | Average True Range | ATR(k1, i) > ATR(k1, i-1) |
MACD(period, i) | MACD line | MACD(k1, i) > SIGNAL(k1, i) |
SIGNAL(period, i) | MACD signal line | SIGNAL(k1, i-1) > MACD(k1, i-1) |
HIST(period, i) | MACD histogram | HIST(k1, i) > 0 |
BBL(period, i) | Bollinger Band lower (-2σ) | Close[i] > BBL(k1, i) |
BBM(period, i) | Bollinger Band middle (MA) | Close[i] > BBM(k1, i) |
BBU(period, i) | Bollinger Band upper (+2σ) | Close[i] < BBU(k1, i) |
ADX(period, i) | ADX (trend strength) | ADX(k1, i) > 25 |
STOCHK(period, i) | Stochastic %K | STOCHK(k1, i) < 20 |
STOCHD(period, i) | Stochastic %D | STOCHD(k1, i) > STOCHK(k1, i) |
max(list) | Maximum of list | max(High[i-10:i]) |
min(list) | Minimum of list | min(Low[i-10:i]) |
| Use | Expression | Meaning |
|---|---|---|
| Entry | EMA(k1, i-1) < EMA(k1*2, i-1) and EMA(k1, i) > EMA(k1*2, i) | EMA golden cross |
| Entry | RSI(k1, i-1) < 30 and RSI(k1, i) > 30 | RSI oversold recovery |
| Entry | max(High[i-k1:i-1]) < Close[i] | Close breaks k1-bar high |
| Exit | EMA(k1, i-1) > EMA(k1*2, i-1) and EMA(k1, i) < EMA(k1*2, i) | EMA dead cross |
| Exit | RSI(k1, i-1) > 70 and RSI(k1, i) < 70 | RSI overbought reversal |
| Exit | ATR(k1, i) < ATR(k1, i-1) or Close[i] < Close[i-1] | ATR contracting or price down |
⚠️ For security, only the functions and variables listed above are allowed.
System calls such as import, open, os are not permitted.
MID vs MinLow30: Stop width = distance from entry mid-price to 30-bar low × 2 (default).
((High[entry_i] + Low[entry_i]) / 2 - min(Low[entry_i-30:entry_i])) * 2
ATR x2: Stop width = ATR(k1) × 2 (trend-following).
ATR(k1, entry_i) * 2
ATR x1: Stop width = ATR(k1) × 1 (tight stop).
ATR(k1, entry_i) * 1
Fixed 1%: Stop width = 1% of entry price.
entry_price * 0.01
Fixed 2%: Stop width = 2% of entry price.
entry_price * 0.02
Candle Low: Stop width = high–low range of the entry bar.
High[entry_i] - Low[entry_i]
Recent Low k1: Stop width = entry price − lowest low of k1 bars.
entry_price - min(Low[entry_i-k1:entry_i])
None loss cut: No stop-loss. Stop width = 100% of entry price, so it is never triggered in practice.
entry_price * 1.0
Custom: Enter a Python expression that returns a price distance (float).
Examples: ATR(k1, i) * 1.5 / Close[i] * 0.015 / abs(Close[i] - min(Low[i-k1:i]))
Sets what percentage of your equity is lost when a stop-loss is hit.
Higher values amplify both gains and losses. Recommended: 5–20%. Default: 5%.
Usually no change needed. If your Custom formula uses two variables, set k=2 and use k1 and k2.
Number of Optuna optimization trials per walk-forward window. Fewer trials suffice when the search range is narrow. Default: 3.
Starting equity = 1. Position size is adjusted so that equity decreases by the risk rate (%) on a stop-loss hit. Spread = 0.1% of price. Daily bars.
Outputs 9-year total asset multiplier (e.g. 1.6x, 1000x) and Pearson correlation (closer to 1 means more consistent uptrend) as charts.
🚀 ゴーリトレード専用 EA作成代行サービス
通常価格: 49,800円 → 【リリース記念】特別価格: 29,800円(税込)
読み込み中…