From my point of view simplest forex scalping 1 minute strategy is try to go against market after bigger drop.
M15 for checking actual state of that market.
H4 + D1 for looking for good supports and resistances
Once you will see, that on M15 is RSI higher than 75 and market in last days fall down at average around 80 - 100 pips and today allready droped aroun 70+ pips + from D1 you will see there good support level, i would like to prefer in range of another 40 - 70 pips scalp volatility around these levels.
Simple 1 minute forex scalping strategy for beginners
Simple 1 minute forex scalping strategy for beginners
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
The Strategy Setup
1. The Macro View (H4 + D1): Find the Walls
Before you even think about the 1-minute chart, zoom out to the 4-Hour and Daily charts. You are looking for major, undeniable Support and Resistance levels. Draw your zones. This is where the magic happens.
2. The Context (M15): Measure the Exhaustion
We don't just buy every support level. We want to see that sellers are completely exhausted by the time they reach it.
The Range: Look at the last few days. If the average daily drop is around 80–100 pips, we want to see that today has already dropped 70+ pips. This tells us the daily range is stretched to its limit.
The Momentum: We check the M15 RSI.
(Note: i mentioned looking for M15 RSI > 75 after a drop. Usually, a massive drop pushes the RSI into oversold territory below 25. So i meant looking for an oversold RSI to buy the bounce).
3. The Execution (M1): Scalp the Volatility
Once the market has dropped 70+ pips for the day, the M15 RSI is flashing an extreme, and we are tapping that D1 Support level, we drop down to the M1 chart.
We aren't looking for a massive swing trade. We are looking to scalp the immediate 40–70 pip volatility that happens as larger players take profit at support and counter-trend buyers step in.
Look for M1 reversal patterns (pin bars, engulfing candles, or a break of M1 structure) inside that daily support zone to trigger your entry.
1. The Macro View (H4 + D1): Find the Walls
Before you even think about the 1-minute chart, zoom out to the 4-Hour and Daily charts. You are looking for major, undeniable Support and Resistance levels. Draw your zones. This is where the magic happens.
2. The Context (M15): Measure the Exhaustion
We don't just buy every support level. We want to see that sellers are completely exhausted by the time they reach it.
The Range: Look at the last few days. If the average daily drop is around 80–100 pips, we want to see that today has already dropped 70+ pips. This tells us the daily range is stretched to its limit.
The Momentum: We check the M15 RSI.
(Note: i mentioned looking for M15 RSI > 75 after a drop. Usually, a massive drop pushes the RSI into oversold territory below 25. So i meant looking for an oversold RSI to buy the bounce).
3. The Execution (M1): Scalp the Volatility
Once the market has dropped 70+ pips for the day, the M15 RSI is flashing an extreme, and we are tapping that D1 Support level, we drop down to the M1 chart.
We aren't looking for a massive swing trade. We are looking to scalp the immediate 40–70 pip volatility that happens as larger players take profit at support and counter-trend buyers step in.
Look for M1 reversal patterns (pin bars, engulfing candles, or a break of M1 structure) inside that daily support zone to trigger your entry.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
The Pine Script (TradingView)
To make this easier, I wrote a quick Pine Script (v5) to automatically track the Daily Pip Drop and the M15 RSI. You can slap this on your M1 chart. It will highlight the background when the market is exhausted (70+ pips down) and the M15 RSI hits your extreme, telling you it's time to look for M1 entries.
To make this easier, I wrote a quick Pine Script (v5) to automatically track the Daily Pip Drop and the M15 RSI. You can slap this on your M1 chart. It will highlight the background when the market is exhausted (70+ pips down) and the M15 RSI hits your extreme, telling you it's time to look for M1 entries.
Code: Select all
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=5
indicator("Exhaustion Scalper [M1/M15/D1]", overlay=true)
// --- Inputs ---
grp1 = "Strategy Conditions"
minDailyDrop = input.int(70, title="Minimum Daily Drop (Pips)", group=grp1)
rsiTimeframe = input.timeframe("15", title="RSI Timeframe", group=grp1)
rsiLength = input.int(14, title="RSI Length", group=grp1)
// Note: Set this to < 25 if looking to buy after a drop, or > 75 if that is your specific setup.
rsiOversold = input.int(25, title="RSI Extreme Level (Oversold)", group=grp1)
// --- Calculations ---
// Calculate pip size based on broker (assumes 5-digit broker for forex)
pipSize = syminfo.mintick * (syminfo.type == "forex" ? 10 : 1)
// Get Daily High to calculate today's drop
dailyHigh = request.security(syminfo.tickerid, "D", high)
currentDropPips = (dailyHigh - close) / pipSize
// Get M15 RSI
m15RSI = request.security(syminfo.tickerid, rsiTimeframe, ta.rsi(close, rsiLength))
// --- Conditions ---
// 1. Has the market dropped by at least our minimum pip requirement today?
isStretched = currentDropPips >= minDailyDrop
// 2. Is the M15 RSI at an extreme? (Adjusted to < 25 for standard exhaustion, change in settings if needed)
isRsiExtreme = m15RSI <= rsiOversold
// Combined Signal
buyZone = isStretched and isRsiExtreme
// --- Visuals ---
// Highlight the background green when conditions are met to look for M1 setups
bgcolor(buyZone ? color.new(color.green, 85) : na, title="Buy Zone Highlight")
// Display a table to easily monitor current stats without changing timeframes
var table statsTable = table.new(position.top_right, 2, 2, border_width = 1)
if barstate.islast
table.cell(statsTable, 0, 0, "Today's Drop (Pips):", text_color=color.white, bgcolor=color.gray)
table.cell(statsTable, 1, 0, str.tostring(math.round(currentDropPips, 1)), text_color=color.white, bgcolor=isStretched ? color.green : color.red)
table.cell(statsTable, 0, 1, "M15 RSI:", text_color=color.white, bgcolor=color.gray)
table.cell(statsTable, 1, 1, str.tostring(math.round(m15RSI, 1)), text_color=color.white, bgcolor=isRsiExtreme ? color.green : color.red)Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
How to use the script:
1.) Open TradingView, go to the Pine Editor tab at the bottom.
2.) Delete whatever is there, paste the code above, and click Add to Chart.
3.) It will add a small dashboard in the top right corner showing today's exact pip drop and the live M15 RSI. When both turn green (default is 70+ pip drop and RSI < 25), the chart background will highlight, signaling you to hunt for M1 scalps at your Daily support zones.
I'd love to hear your thoughts on this! Does anyone else trade mean-reversion at extreme ADR limits? Let me know if you want any tweaks to the script. Happy trading!

1.) Open TradingView, go to the Pine Editor tab at the bottom.
2.) Delete whatever is there, paste the code above, and click Add to Chart.
3.) It will add a small dashboard in the top right corner showing today's exact pip drop and the live M15 RSI. When both turn green (default is 70+ pip drop and RSI < 25), the chart background will highlight, signaling you to hunt for M1 scalps at your Daily support zones.
I'd love to hear your thoughts on this! Does anyone else trade mean-reversion at extreme ADR limits? Let me know if you want any tweaks to the script. Happy trading!
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
For MetaTrader, the best way to handle this is by creating a custom indicator that displays a clean text dashboard in the top-left corner of the chart (using the Comment function) and triggers a pop-up alert/sound when the conditions are met. This means you don't have to stare at the M1 chart all day waiting for the setup!
For the MetaTrader Users (MT4 & MT5 Indicators)
Since a lot of us trade on MetaTrader, I’ve also coded this into custom indicators for both MT4 and MT5.
Instead of coloring the background like in TradingView, these scripts will put a clean text dashboard in the top-left corner of your chart. It tracks the daily pip drop and M15 RSI in real-time. Better yet, it will send you a pop-up alert the moment the market drops 70+ pips and the M15 RSI hits the extreme zone. Once you get the alert, just pull up your M1 chart and look for your entry near the D1 support!
For the MetaTrader Users (MT4 & MT5 Indicators)
Since a lot of us trade on MetaTrader, I’ve also coded this into custom indicators for both MT4 and MT5.
Instead of coloring the background like in TradingView, these scripts will put a clean text dashboard in the top-left corner of your chart. It tracks the daily pip drop and M15 RSI in real-time. Better yet, it will send you a pop-up alert the moment the market drops 70+ pips and the M15 RSI hits the extreme zone. Once you get the alert, just pull up your M1 chart and look for your entry near the D1 support!
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
MT4 Version (MQL4)
1.) Open MetaEditor (F4).
2.) Create a New Custom Indicator, name it Exhaustion_Scalper_MT4.
3.) Paste this code over everything and click Compile.
1.) Open MetaEditor (F4).
2.) Create a New Custom Indicator, name it Exhaustion_Scalper_MT4.
3.) Paste this code over everything and click Compile.
Code: Select all
//+------------------------------------------------------------------+
//| Exhaustion_Scalper_MT4.mq4|
//+------------------------------------------------------------------+
#property copyright "Forum Community"
#property version "1.00"
#property strict
#property indicator_chart_window
input int MinDailyDrop = 70; // Minimum Daily Drop (Pips)
input int RSIPeriod = 14; // M15 RSI Period
input int RSIOversold = 25; // RSI Extreme Level
input bool EnableAlerts = true; // Enable Pop-up Alerts
datetime lastAlertTime = 0;
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// Calculate Pip Size (handles 5-digit and 4-digit brokers)
double pipSize = (Digits == 5 || Digits == 3) ? Point * 10 : Point;
if (pipSize == 0) return 0;
// Get Daily High and calculate today's drop
double dailyHigh = iHigh(Symbol(), PERIOD_D1, 0);
double currentDrop = (dailyHigh - close[0]) / pipSize;
// Get M15 RSI
double m15RSI = iRSI(Symbol(), PERIOD_M15, RSIPeriod, PRICE_CLOSE, 0);
// Check Conditions
bool isStretched = (currentDrop >= MinDailyDrop);
bool isRsiExtreme = (m15RSI <= RSIOversold);
// Update Dashboard
string dash = "--- EXHAUSTION SCALPER (MT4) ---\n";
dash += "Today's Drop: " + DoubleToStr(currentDrop, 1) + " Pips (" + (isStretched ? "STRETCHED" : "Waiting") + ")\n";
dash += "M15 RSI: " + DoubleToStr(m15RSI, 1) + " (" + (isRsiExtreme ? "EXTREME" : "Waiting") + ")\n";
dash += "Status: " + ((isStretched && isRsiExtreme) ? "BUY ZONE ACTIVE - Check M1 + D1 Support!" : "Scanning...");
Comment(dash);
// Trigger Alert once per bar
if (EnableAlerts && isStretched && isRsiExtreme && Time[0] != lastAlertTime) {
Alert(Symbol() + " Exhaustion Buy Zone! Drop: " + DoubleToStr(currentDrop, 1) + " pips, RSI: " + DoubleToStr(m15RSI, 1));
lastAlertTime = Time[0];
}
return(rates_total);
}Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
MT5 Version (MQL5)
1.) Open MetaEditor (F4).
2.) Create a New Custom Indicator, name it Exhaustion_Scalper_MT5.
3.) Paste this code over everything and click Compile.
To use it: Simply drag and drop the compiled indicator onto your M1 chart. The logic will automatically pull data from the Daily and M15 timeframes in the background, so you don't even have to change chart timeframes to know when the setup is ready!
1.) Open MetaEditor (F4).
2.) Create a New Custom Indicator, name it Exhaustion_Scalper_MT5.
3.) Paste this code over everything and click Compile.
Code: Select all
//+------------------------------------------------------------------+
//| Exhaustion_Scalper_MT5.mq5|
//+------------------------------------------------------------------+
#property copyright "Forum Community"
#property version "1.00"
#property indicator_chart_window
input int MinDailyDrop = 70; // Minimum Daily Drop (Pips)
input int RSIPeriod = 14; // M15 RSI Period
input int RSIOversold = 25; // RSI Extreme Level
input bool EnableAlerts = true; // Enable Pop-up Alerts
int rsiHandle;
datetime lastAlertTime = 0;
int OnInit()
{
// Initialize RSI Handle for M15
rsiHandle = iRSI(_Symbol, PERIOD_M15, RSIPeriod, PRICE_CLOSE);
if (rsiHandle == INVALID_HANDLE) {
Print("Error creating RSI handle");
return INIT_FAILED;
}
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
Comment(""); // Clear dashboard on removal
IndicatorRelease(rsiHandle);
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// Calculate Pip Size
double pipSize = (_Digits == 5 || _Digits == 3) ? _Point * 10 : _Point;
if (pipSize == 0 || rates_total == 0) return 0;
// Get Daily High
double highD1[];
if(CopyHigh(_Symbol, PERIOD_D1, 0, 1, highD1) <= 0) return 0;
// Calculate today's drop
double currentDrop = (highD1[0] - close[rates_total-1]) / pipSize;
// Get M15 RSI
double rsiVal[];
if (CopyBuffer(rsiHandle, 0, 0, 1, rsiVal) <= 0) return 0;
double m15RSI = rsiVal[0];
// Check Conditions
bool isStretched = (currentDrop >= MinDailyDrop);
bool isRsiExtreme = (m15RSI <= RSIOversold);
// Update Dashboard
string dash = "--- EXHAUSTION SCALPER (MT5) ---\n";
dash += "Today's Drop: " + DoubleToString(currentDrop, 1) + " Pips (" + (isStretched ? "STRETCHED" : "Waiting") + ")\n";
dash += "M15 RSI: " + DoubleToString(m15RSI, 1) + " (" + (isRsiExtreme ? "EXTREME" : "Waiting") + ")\n";
dash += "Status: " + ((isStretched && isRsiExtreme) ? "BUY ZONE ACTIVE - Check M1 + D1 Support!" : "Scanning...");
Comment(dash);
// Trigger Alert once per bar
if (EnableAlerts && isStretched && isRsiExtreme && time[rates_total-1] != lastAlertTime) {
Alert(_Symbol + " Exhaustion Buy Zone! Drop: " + DoubleToString(currentDrop, 1) + " pips, RSI: " + DoubleToString(m15RSI, 1));
lastAlertTime = time[rates_total-1];
}
return(rates_total);
}Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
cTrader uses C# for its custom indicators and cBots, and its multi-timeframe handling is incredibly smooth. Just like the MT4/MT5 versions, this script will place a clean text dashboard in the top-left corner of your chart and ring an audio bell when your conditions are met!
For the cTrader Users (C# Custom Indicator)
I know we have a strong cTrader community here, so I didn't want to leave you guys out. Since cTrader handles multi-timeframe data beautifully, creating a dashboard for this is super easy.
This custom indicator will track the Daily pip drop and the M15 RSI while you stay comfortably on your M1 execution chart. If the parameters are hit, the text turns bright green, prints a message in your log, and plays a bell sound so you know it's time to hunt for an entry.
For the cTrader Users (C# Custom Indicator)
I know we have a strong cTrader community here, so I didn't want to leave you guys out. Since cTrader handles multi-timeframe data beautifully, creating a dashboard for this is super easy.
This custom indicator will track the Daily pip drop and the M15 RSI while you stay comfortably on your M1 execution chart. If the parameters are hit, the text turns bright green, prints a message in your log, and plays a bell sound so you know it's time to hunt for an entry.
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.
Re: Simple 1 minute forex scalping strategy for beginners
How to install the cTrader version:
1.) Open cTrader and click on the Automate tab on the left menu.
2.) Click New -> New Indicator.
3.) Name it ExhaustionScalper.
4.) Delete the default code, paste the C# code below, and click the Build button (or press Ctrl+B).
To use it: Go back to your normal Trade tab, open a 1-Minute chart, right-click the background, go to Indicators -> Custom, and select ExhaustionScalper.
It works identically to the MT4/MT5 versions. You can let this run quietly in the background while you go about your day, and just wait for the bell to ring!
1.) Open cTrader and click on the Automate tab on the left menu.
2.) Click New -> New Indicator.
3.) Name it ExhaustionScalper.
4.) Delete the default code, paste the C# code below, and click the Build button (or press Ctrl+B).
Code: Select all
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class ExhaustionScalper : Indicator
{
[Parameter("Minimum Daily Drop (Pips)", DefaultValue = 70)]
public double MinDailyDrop { get; set; }
[Parameter("M15 RSI Period", DefaultValue = 14)]
public int RSIPeriod { get; set; }
[Parameter("RSI Extreme Level (Oversold)", DefaultValue = 25)]
public double RSIOversold { get; set; }
[Parameter("Enable Audio Alert", DefaultValue = true)]
public bool EnableAlerts { get; set; }
private Bars _dailyBars;
private Bars _m15Bars;
private RelativeStrengthIndex _m15Rsi;
private DateTime _lastAlertTime;
protected override void Initialize()
{
// Load higher timeframes in the background
_dailyBars = MarketData.GetBars(TimeFrame.Daily);
_m15Bars = MarketData.GetBars(TimeFrame.Minute15);
// Initialize M15 RSI using the M15 close prices
_m15Rsi = Indicators.RelativeStrengthIndex(_m15Bars.ClosePrices, RSIPeriod);
}
public override void Calculate(int index)
{
// Only update on the live/last bar to save CPU
if (IsLastBar)
{
UpdateDashboard();
}
}
private void UpdateDashboard()
{
// Calculate today's drop from the daily high down to current Bid price
double dailyHigh = _dailyBars.LastBar.High;
double currentDrop = (dailyHigh - Symbol.Bid) / Symbol.PipSize;
// Get live M15 RSI
double currentRsi = _m15Rsi.Result.LastValue;
// Check Strategy Conditions
bool isStretched = currentDrop >= MinDailyDrop;
bool isRsiExtreme = currentRsi <= RSIOversold;
// Build dashboard text
string dashText = "--- EXHAUSTION SCALPER (cTrader) ---\n";
dashText += string.Format("Today's Drop: {0:F1} Pips ({1})\n", currentDrop, isStretched ? "STRETCHED" : "Waiting");
dashText += string.Format("M15 RSI: {0:F1} ({1})\n", currentRsi, isRsiExtreme ? "EXTREME" : "Waiting");
string status = isStretched && isRsiExtreme ? "BUY ZONE ACTIVE - Check M1 + D1 Support!" : "Scanning...";
dashText += "Status: " + status;
// Make the text turn green when the setup is ready
Color textColor = (isStretched && isRsiExtreme) ? Color.LimeGreen : Color.LightGray;
// Draw text directly onto the top-left of the chart
Chart.DrawStaticText("dashboard", dashText, VerticalAlignment.Top, HorizontalAlignment.Left, textColor);
// Alert logic (Triggers once per M15 bar so it doesn't spam your ears on every tick!)
if (EnableAlerts && isStretched && isRsiExtreme && _m15Bars.LastBar.OpenTime != _lastAlertTime)
{
string alertMsg = string.Format("{0} Exhaustion Buy Zone! Drop: {1:F1} pips, RSI: {2:F1}", Symbol.Name, currentDrop, currentRsi);
Print(alertMsg); // Prints to the cTrader Log
Notifications.PlaySound(SoundType.Bell); // Rings the bell
_lastAlertTime = _m15Bars.LastBar.OpenTime;
}
}
}
}It works identically to the MT4/MT5 versions. You can let this run quietly in the background while you go about your day, and just wait for the bell to ring!
Preserve your own money. Scale with the market's money. Exponential growth is the ultimate key.