EMA and Dow Theory Strategies🌐 Strategy Description
📘 Overview
This is a hybrid strategy that combines EMA crossovers, Dow Theory swing logic, and multi-timeframe trend overlays. It is suitable for intraday to short-term trading on any asset class: crypto, forex, stocks, and indices.
The strategy provides precise entry/exit signals, dynamic stop-loss and scale-out, and highly visual trade guidance.
🧠 Key Features
・Dual EMA crossover system (applied to both symbol and external index)
・Dow Theory-based swing high/low detection for trend confirmation
・Visual overlay of higher timeframe swing trend (htfTrend)
・RSI filter to avoid overbought/oversold entries
・Dynamic partial take-profit when trend weakens
・Custom stop-loss (%) control
・Visualized trade PnL labels directly on chart
・Alerts for entry, stop-loss, partial exit
・Gradient background zones for swing zones and trend visualization
・Auto-tracked metrics: APR, drawdown, win rate, equity curve
⚙️ Input Parameters
| Parameter | Description |
| ------------------------- | -------------------------------------------------------- |
| Fast EMA / Slow EMA | Periods for detecting local trend via EMAs |
| Index Fast EMA / Slow EMA | EMAs applied to external reference index |
| StopLoss | Maximum loss threshold in % |
| ScaleOut Threshold | Scale-out percentage when trend changes color |
| RSI Period / Levels | RSI period and overbought/oversold levels |
| Swing Detection Length | Number of bars used to detect swing highs/lows |
| Stats Display Options | Toggle PnL labels and position of statistics table |
🧭 About htfTrend (Higher Timeframe Trend)
The script includes a higher timeframe trend (htfTrend) calculated using Dow Theory (pivot highs/lows).
This trend is only used for visual guidance, not for actual entry conditions.
Why? Strictly filtering trades by higher timeframe often leads to missed opportunities and low frequency.
By keeping htfTrend visual-only, traders can still refer to macro structure but retain trade flexibility.
Use it as a contextual tool, not a constraint.
ストラテジー説明
📘 概要
本ストラテジーは、EMAクロスオーバー、ダウ理論によるスイング判定、**上位足トレンドの視覚表示(htfTrend)**を組み合わせた複合型の短期トレーディング戦略です。
仮想通貨・FX・株式・指数など幅広いアセットに対応し、デイトレード〜スキャルピング用途に適しています。
動的な利確/損切り、視覚的にわかりやすいエントリー/イグジット、統計表示を搭載しています。
🧠 主な機能
・対象銘柄+外部インデックスのEMAクロスによるトレンド判定
・ダウ理論に基づいたスイング高値・安値検出とトレンド判断
・上位足スイングトレンド(htfTrend)の視覚表示
・RSIフィルターによる過熱・売られすぎの回避
・トレンドの弱まりに応じた部分利確(スケールアウト)
・**損切り閾値(%)**をカスタマイズ可能
・チャート上に損益ラベル表示
・アラート完備(エントリー・決済・部分利確)
・トレンドゾーンを可視化する背景グラデーション
・勝率・ドローダウン・APR・資産増加率などの自動表示
| 設定項目名 | 説明内容 |
| --------------------- | -------------------------- |
| Fast EMA / Slow EMA | 銘柄に対して使用するEMAの期間設定 |
| Index Fast / Slow EMA | 外部インデックスのEMA設定 |
| 損切り(StopLoss) | 損切りラインのしきい値(%で指定) |
| 部分利確しきい値 | トレンド弱化時にスケールアウトする割合(%) |
| RSI期間・水準 | RSI計算期間と、過熱・売られすぎレベル設定 |
| スイング検出期間 | スイング高値・安値の検出に使用するバー数 |
| 統計表示の切り替え | 損益ラベルや統計テーブルの表示/非表示選択 |
🧭 上位足トレンド(htfTrend)について
本スクリプトには、上位足でのスイング高値・安値の更新に基づく**htfTrend(トレンド判定)が含まれています。
これは視覚的な参考情報であり、エントリーやイグジットには直接使用されていません。**
その理由は、上位足を厳密にロジックに組み込むと、トレード機会の損失が増えるためです。
このスクリプトでは、**判断の補助材料として「表示のみに留める」**設計を採用しています。
→ 裁量で「利確を早める」「逆張りを避ける」判断に活用可能です。
Dowtheory
Dow Theory Trend StrategyDow Theory Trend Strategy (Pine Script)
Overview
This Pine Script implements a trading strategy based on the core principles of Dow Theory. It visually identifies trends (uptrend, downtrend) by analyzing pivot highs and lows and executes trades when the trend direction changes. This script is an improved version that features refined trend determination logic and strategy implementation.
Core Concept: Dow Theory
The script uses a fundamental Dow Theory concept for trend identification:
Uptrend: Characterized by a series of Higher Highs (HH) and Higher Lows (HL).
Downtrend: Characterized by a series of Lower Highs (LH) and Lower Lows (LL).
How it Works
Pivot Point Detection:
It uses the built-in ta.pivothigh() and ta.pivotlow() functions to identify significant swing points (potential highs and lows) in the price action.
The pivotLookback input determines the number of bars to the left and right required to confirm a pivot. Note that this introduces a natural lag (equal to pivotLookback bars) before a pivot is confirmed.
Improved Trend Determination:
The script stores the last two confirmed pivot highs and the last two confirmed pivot lows.
An Uptrend (trendDirection = 1) is confirmed only when the latest pivot high is higher than the previous one (HH) AND the latest pivot low is higher than the previous one (HL).
A Downtrend (trendDirection = -1) is confirmed only when the latest pivot high is lower than the previous one (LH) AND the latest pivot low is lower than the previous one (LL).
Key Improvement: If neither a clear uptrend nor a clear downtrend is confirmed based on the latest pivots, the script maintains the previous trend state (trendDirection := trendDirection ). This differs from simpler implementations that might switch to a neutral/range state (e.g., trendDirection = 0) more frequently. This approach aims for smoother trend following, acknowledging that trends often persist through periods without immediate new HH/HL or LH/LL confirmations.
Trend Change Detection:
The script monitors changes in the trendDirection variable.
changedToUp becomes true when the trend shifts to an Uptrend (from Downtrend or initial state).
changedToDown becomes true when the trend shifts to a Downtrend (from Uptrend or initial state).
Visualizations
Background Color: The chart background is colored to reflect the currently identified trend:
Blue: Uptrend (trendDirection == 1)
Red: Downtrend (trendDirection == -1)
Gray: Initial state or undetermined (trendDirection == 0)
Pivot Points (Optional): Small triangles (shape.triangledown/shape.triangleup) can be displayed above pivot highs and below pivot lows if showPivotPoints is enabled.
Trend Change Signals (Optional): Labels ("▲ UP" / "▼ DOWN") can be displayed when a trend change is confirmed (changedToUp / changedToDown) if showTrendChange is enabled. These visually mark the potential entry points for the strategy.
Strategy Logic
Entry Conditions:
Enters a long position (strategy.long) using strategy.entry("L", ...) when changedToUp becomes true.
Enters a short position (strategy.short) using strategy.entry("S", ...) when changedToDown becomes true.
Position Management: The script uses strategy.entry(), which automatically handles position reversal. If the strategy is long and a short signal occurs, strategy.entry() will close the long position and open a new short one (and vice-versa).
Inputs
pivotLookback: The number of bars on each side to confirm a pivot high/low. Higher values mean pivots are confirmed later but may be more significant.
showPivotPoints: Toggle visibility of pivot point markers.
showTrendChange: Toggle visibility of the trend change labels ("▲ UP" / "▼ DOWN").
Key Improvements from Original
Smoother Trend Logic: The trend state persists unless a confirmed reversal pattern (opposite HH/HL or LH/LL) occurs, reducing potential whipsaws in choppy markets compared to logic that frequently resets to neutral.
Strategy Implementation: Converted from a pure indicator to a strategy capable of executing backtests and potentially live trades based on the Dow Theory trend changes.
Disclaimer
Dow Theory signals are inherently lagging due to the nature of pivot confirmation.
The effectiveness of the strategy depends heavily on the market conditions and the chosen pivotLookback setting.
This script serves as a basic template. Always perform thorough backtesting and implement proper risk management (e.g., stop-loss, take-profit, position sizing) before considering any live trading.
Dow Theory Swing Trading-DexterThis Pine Script strategy that implements a basic price action-based trading system inspired by Dow Theory, focusing on swing highs and swing lows. This strategy will generate buy and sell signals based on the formation of higher highs (HH) and higher lows (HL) for an uptrend, and lower highs (LH) and lower lows (LL) for a downtrend.
Swing Highs and Swing Lows:
The script identifies swing highs and swing lows using the ta.highest and ta.lowest functions over a specified lookback period.
A swing high is identified when the high of the current bar is the highest high over the lookback period.
A swing low is identified when the low of the current bar is the lowest low over the lookback period.
Trend Detection:
An uptrend is detected when the current low is higher than the last identified swing low.
A downtrend is detected when the current high is lower than the last identified swing high.
Buy and Sell Signals:
A buy signal is generated when the price closes above the last swing high during an uptrend.
A sell signal is generated when the price closes below the last swing low during a downtrend.
Plotting:
Swing highs and swing lows are plotted on the chart using plotshape.
Buy and sell signals are also plotted on the chart for visual reference.
How to Use:
Copy and paste the script into the Pine Script editor in TradingView.
Adjust the lookback period as needed to suit your trading style and timeframe.
Apply the script to your chart and it will generate buy and sell signals based on the price action.
NOTE: Please uncheck the all the unwanted symbol from chart for clear view .
REAL STRATEGY : Dow_Factor_MFI/RSI_DVOG_StrategyI'm actually one of those who think it's more important to extract clues from indicators than strategy, but I wanted to test the data about the probability and dow factor I've shared for a long time.
Usually, Bitcoin is used as an eye stain for strategy success, since the graph has increased significantly from the beginning.
To prevent this, I used a commission and in the last lines of document I shared Bitmex's Bitcoin and Ethereum 1W test results.
I don't think there's a factor to repaint. ( Warn me if u see or observe )
I considered Bitcoin because I found working with liquid parities much more realistic.
Ethereum and Bitmex have been featured as a spot and may soon find a place at the CME , so I've evaluated the Ethereum .
But since the Ethereum Bitmex was also spot new, I deleted results that were less than 10 closed trades.
Since the Dow Theory also looks at the harmony in the indices, just try it in the Cryptocurrency market.
Use as indicator in other markets. Support with channels, trend lines with big periods and other supportive indicators.
And my personal suggestion : Use this script and indicator TF : 4H and above.
Specifications :
Commission. ( % 0.125 )
Switchable Methods ( Relative Strength Index / Money Flow Index )
Alarms. (Buy / Sell )
Position closure when horizontal market rates weighs.
Progressive gradual buy/sell alarms.
Clean code layout that will not cause repaint. (Caution : source = close )
Switchable barcolor option (I / 0 )
*****Test results :*****
drive.google.com
Summary:
It was a realistic test.
It has achieved great success in some markets, but as I mentioned earlier, use it only to gain insight into the price movements of cryptos.
Use as indicator in other markets.
This code is open source under the MIT license. If you have any improvements or corrections to suggest, please send me a pull request via the github repository : github.com
Stay tuned ! Noldo.