ガリレオ・ガリレオの移動平均クロスオーバー戦略は,移動平均値に基づいた取引戦略である.指定された期間における指数的な移動平均値 (EMA) を計算し,EMAと価格のクロスオーバーを比較することによって取引信号を生成する.価格は上から下へとEMAを下回るときに販売信号が生成され,価格は下から上へとEMAを下回るときに購入信号が生じる.
ガリレオ・ガリレオ
今日のEMA = (今日の閉場価格 × 調整因数) + (昨日のEMA × (1 − 調整因数))
均一化因子 α = (2/(周期数 + 1))
この戦略は,ユーザー入力期間のパラメータに基づいて EMA を動的に計算し,価格と EMA のクロスオーバーを比較して取引信号を決定します.
価格が上から下へと EMAを下回ると,ショート取引のためのセールシグナルが生成されます.
価格がEMAを下から突破すると 買い信号が発信され ロング取引が開始されます
この戦略は,チャート上で EMA 線と,買い・売るシグナルを示す矢印をグラフ化しています.
ガリレオ・ガリレオの移動平均のクロスオーバー戦略には以下の利点があります.
この戦略による潜在的なリスクは以下のとおりです.
戦略を最適化する方法:
誤った信号に対する強度向上のための複合戦略を構築するために他の指標を組み込む.例には,ボリューム,トレンド指標などがあります.
ストップ・ロスのメカニズムを追加します. ストップ・ロスの遅れや ストップ・ロスの割合をベースに,単一の取引の損失額を制御します.
最適な設定を見つけるために異なるパラメータ組み合わせで EMA をテストする.他の移動平均型も評価できる.
初期価格逆転の後,リバウンドを捕捉し,収益性を向上させるため,再入力の論理を評価する.
ガリレオ・ガリレオの移動平均クロスオーバーは,シンプルで実用的な戦略で,論理が明確で操作が容易です. 初心者の量子トレーダーに適しています.継続的な改善により,そのパフォーマンスは時間の経過とともにますます優位化することができます.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © armigoldman //@version=3 strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000) len = input(11, minval=1, title="Length") src = input(open, title="Source") out = ema(src, len) plot(out, title="EMA", color=yellow) //last8h = highest(close, 8) //lastl8 = lowest(close, 8) //plot(last8h, color=red, linewidth=2) //plot(lastl8, color=green, linewidth=2) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval=1, title="From Day", minval=1, maxval=31) fromMonth = input(defval=1, title="From Month", minval=1, maxval=12) fromYear = input(defval=2020, title="From Year", minval=1970) // To Date Inputs toDay = input(defval=1, title="To Day", minval=1, maxval=31) toMonth = input(defval=12, title="To Month", minval=1, maxval=12) toYear = input(defval=2021, title="To Year", minval=1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true bearish = cross(close, out) == 1 and close[1] > close bullish = cross(close, out) == 1 and close[1] < close plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar) plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar) buy = if cross(close, out) == 1 and close[1] < close strategy.entry("BUY", strategy.long, when=time_cond) //strategy.close_all(when=bearish) // strategy.exit("exit", "Long", profit =, loss = 35) sell = if cross(close, out) == 1 and close[1] > close strategy.entry("SELL", strategy.short, when=time_cond) //sell = if bearish //strategy.close_all(when=bullish) // strategy.exit("exit", "Long", profit = bullish, loss = 100) profit = strategy.netprofit if not time_cond strategy.close_all() //plotshape(true, style=shape.triangleup, location=location.abovebar)