Skip to main content

Forex Profit System

Forex Profit System strategy behavior

Forex Profit System is a trend-following strategy based on three exponential moving averages and Parabolic SAR. It looks for a bullish EMA structure or fresh multi-EMA cross while the Parabolic SAR value is below price.

Once in a position, it can use a fixed fee-aware target, break-even-aware EMA and bearish-signal exits, and an optional loss-taking stop below the slow EMA.

The default 10/25/50 EMA structure and 30-minute period are aimed at established directional moves rather than very short noise. The strategy can also suit one-hour charts after separate testing.

warning

The EMA50 stop is disabled by default. It follows the current slow EMA and is not a one-way ratchet; if the slow EMA moves lower, the stop can move lower too.

Entry setup

A long entry requires:

  • Parabolic SAR below the current close;
  • the fast EMA above both the middle and slow EMA;
  • additional EMA ordering or cross behavior selected by FPS_REQUIRE_CROSS.

Fresh cross mode

With FPS_REQUIRE_CROSS enabled, the previous fast EMA must have been at or below both the middle and slow EMA, then move above both on the current candle.

This is a strict double cross. If the fast EMA crossed one slower line on an earlier candle and the other later, the later candle does not qualify unless the fast EMA was still below both on the preceding candle.

Trend-state mode

When FPS_REQUIRE_CROSS is disabled, the strategy accepts an ongoing bullish order:

fast EMA > middle EMA >= slow EMA

This allows continuation entries after the initial cross, but can enter later in a mature trend or re-enter while the same bullish structure persists.

The strategy opens one position at a time and does not average down.

EMA and PSAR settings

FPS_EMA_FAST, FPS_EMA_MID, and FPS_EMA_SLOW define the three trend horizons. Keep them ordered from shortest to longest.

Shortening the EMAs makes the setup respond faster and cross more often. Lengthening them filters more noise but delays entries and exits.

FPS_PSAR_STEP controls Parabolic SAR acceleration and FPS_PSAR_MAX caps it. Faster settings react sooner but can flip repeatedly in ranges. Keep the maximum at or above the step.

Exit behavior

Fixed target

Enable FPS_USE_TARGET to exit at FPS_TARGET_PCT above average buy price.

The target is raised when necessary to cover estimated round-trip fees and FPS_MIN_NET_GAIN_PCT. When the target is disabled, the strategy relies on technical exits and any enabled EMA stop.

EMA-break exit

With FPS_EXIT_ON_EMA_BREAK enabled, the position can close when bid falls below all three EMAs.

This exit requires price at break-even or better. It does not deliberately realize a loss.

Bearish EMA/PSAR signal

The strategy always recognizes a mirrored bearish sell signal:

  • Parabolic SAR above price;
  • fast EMA below both slower EMAs;
  • either a strict bearish double cross or complete bearish EMA order, depending on FPS_REQUIRE_CROSS.

This signal can also close only at break-even or better. There is no separate exposed switch for it.

EMA-following protective stop

The loss-taking stop is:

current slow EMA × (1 - FPS_STOP_BUFFER_PCT / 100)

It operates only when both of these are enabled:

  • FPS_USE_PROTECTION;
  • FPS_USE_TRAILING_EMA50_STOP.

Despite the setting name, the reference is the configurable FPS_EMA_SLOW, not necessarily EMA 50.

The stop is recalculated from the current slow EMA. It can rise in an uptrend, but it can also fall when that EMA declines. It therefore follows the EMA rather than locking only upward like a conventional trailing stop.

If FPS_USE_TRAILING_EMA50_STOP is disabled, enabling protection alone does not create another stop.

Good market conditions

Forex Profit System generally works best when:

  • the market is liquid and spread is small;
  • the three EMAs separate into a stable bullish order;
  • PSAR remains below price for sustained periods;
  • pullbacks respect the middle or slow EMA;
  • the target is realistic for the chart period and volatility.

Fresh-cross mode suits emerging trends with a decisive reordering of all three EMAs. Trend-state mode can join established moves but needs care after long extensions.

Avoid flat markets where the EMAs repeatedly overlap and PSAR alternates sides. Also be cautious when the slow EMA is falling: the EMA-following stop can continue moving down and may provide less protection than expected.

Creating the strategy

Create a spot strategy and choose Forex Profit System as the buy and sell method. Start with backtesting or paper trading.

A practical setup sequence is:

  1. Select a liquid pair and begin with the default 30-minute period.
  2. Keep the 10/25/50 EMA structure initially.
  3. Compare strict fresh crosses with ongoing trend-state entries.
  4. Tune PSAR only after reviewing EMA behavior.
  5. Decide whether you want a fixed target or technical trend exits.
  6. Inspect the EMA-following stop across declining as well as rising samples.
  7. Set spread limits and order sizes for the pair.
  8. Test ranges, false crosses, and sustained trends.

Strategy settings

Trading and execution

SettingDescription
BUY_ENABLEDEnables new buy orders.
SELL_ENABLEDEnables target, technical, and protective sell orders.
PERIODCandle period used for EMA and PSAR calculations; the default is 30 minutes.
TRADING_LIMITCompatibility fallback only. It is ignored while the strategy-specific trading limit contains a positive value. Configure the strategy-specific setting for normal use. For USDT-BTC, this value is in USDT.
FPS_TRADING_LIMITFor USDT-BTC, the amount of USDT used for an entry.
FUNDS_RESERVEFor USDT-BTC, the amount of USDT the bot must leave unused.
KEEP_QUOTEFor USDT-BTC, the amount of BTC the strategy must not sell.
MIN_VOLUME_TO_BUYGeneral minimum buy value. For USDT-BTC, this value is in USDT.
MIN_VOLUME_TO_SELLGeneral minimum sell value. For USDT-BTC, this value is in USDT.
FPS_MIN_ORDER_VALUEStrategy-specific minimum entry value. For USDT-BTC, this value is in USDT.
FPS_MIN_SELL_VALUEStrategy-specific minimum exit value. For USDT-BTC, this value is in USDT.
GAINGeneral gain fallback retained in the configuration.
FPS_COOLDOWN_MSMinimum live-trading delay in milliseconds between actions. It is not applied in backtests.
FPS_MAX_SPREAD_PCTMaximum permitted bid/ask spread as a percentage.
FPS_MAX_SPREAD_ABSOLUTEOptional maximum spread in USDT for a pair such as USDT-BTC. 0 disables it.
FPS_NEWS_BLOCKManually blocks new entries while existing positions remain manageable.
FPS_NEWS_BLOCK_UNTILBlocks new entries until the configured time.

Trend signal

SettingDescription
FPS_EMA_FASTFast EMA length.
FPS_EMA_MIDMiddle EMA length; keep it above the fast length.
FPS_EMA_SLOWSlow EMA length; keep it above the middle length. It also supplies the stop reference.
FPS_PSAR_STEPParabolic SAR acceleration step.
FPS_PSAR_MAXMaximum Parabolic SAR acceleration.
FPS_REQUIRE_CROSSRequires a fresh fast-EMA cross of both slower EMAs. When disabled, complete EMA ordering is sufficient.

Target and exits

SettingDescription
FPS_USE_TARGETEnables the fixed fee-aware target.
FPS_TARGET_PCTPercentage target above average buy price.
FPS_MIN_NET_GAIN_PCTMinimum intended gain beyond estimated round-trip fee break-even.
FPS_EXIT_ON_EMA_BREAKEnables a break-even-or-better exit when price is below all three EMAs.

Protection

SettingDescription
FPS_USE_TRAILING_EMA50_STOPEnables use of the slow-EMA stop when protection is also active.
FPS_STOP_BUFFER_PCTDistance below the current slow EMA for the protective stop.
FPS_USE_PROTECTIONActivates the loss-taking EMA stop; it has no independent stop when the trailing-EMA switch is off.

Backtesting range

SettingDescription
BF_SINCEStart of the selected backtesting period.
BF_UNTILEnd of the selected backtesting period.
DEEP_TESTINGEnables deeper backtesting mode in the editor.

Practical tuning directions

Use cross mode when you want one opportunity at the transition into a bullish EMA structure. Use trend-state mode when continuation entries are desirable.

For smoother trends, lengthen all three EMAs while preserving their order. For earlier signals, shorten them, but expect more overlap and false crosses.

If the target is disabled, confirm that the technical exits match your holding expectations. They remain unavailable below break-even unless the EMA-following protective stop is enabled.

Choose the stop buffer after inspecting how far the slow EMA normally sits below price. A small buffer can stop ordinary EMA tests; a large one increases loss distance.

Important limitations

  • A strict double cross can miss staggered EMA transitions.
  • Trend-state mode can enter late or re-enter the same mature trend.
  • EMA and PSAR signals lag price.
  • Technical exits do not deliberately realize a loss.
  • Protection alone does nothing when the trailing-EMA stop switch is off.
  • The EMA-following stop can move downward and is not a ratcheting trail.
  • The “EMA50” stop follows the configurable slow EMA length.
  • Backtests cannot perfectly reproduce live spread, slippage, latency, or liquidity.

Forex Profit System works best when all three EMAs and PSAR describe one durable bullish phase. The choice between fresh cross and ongoing trend state determines whether the strategy trades the transition or the continuation.