指定

""" Wick Reversal Strategy — core logic ===================================== Rules (as specified): - Timeframe: 15-minute candles - Entry: candle wick >= WICK_MULTIPLIER x body -> signal candle - long lower wick -> enter LONG at next candle's open - long upper wick -> enter SHORT at next candle's open - Exit: an opposite-direction wick candle forms while in a position - Stop-loss: just beyond the signal candle's extreme (high/low) - Position sizing: risk RISK_PCT of account equity per trade """ from dataclasses import dataclass from enum import Enum import pandas as pd class Signal(Enum): NONE = "none" LONG_WICK = "long_wick" # long lower wick -> bullish signal SHORT_WICK = "short_wick" # long upper wick -> bearish signal @dataclass class StrategyParams: wick_multiplier: float = 2.0 # wick must be >= this x body size risk_pct: float = 0.05 # fraction of equity risked per trade stop_buffer: float = 0.0 # extra buffer beyond wick extreme (in price units) def classify_candle(open_: float, high: float, low: float, close: float, params: StrategyParams) -> Signal: """ Classify a single candle as a wick signal or not. body = |close - open| upper_wick = high - max(open, close) lower_wick = min(open, close) - low """ body = abs(close - open_) upper_wick = high - max(open_, close) lower_wick = min(open_, close) - low # Guard against a zero/near-zero body (doji) inflating the ratio infinitely. # Use a tiny epsilon floor so a real body of 0 doesn't produce a false signal # from noise, but still allows genuine doji-with-wick setups to qualify. epsilon = 1e-9 effective_body = max(body, epsilon) is_lower_signal = lower_wick >= params.wick_multiplier * effective_body and lower_wick > 0 is_upper_signal = upper_wick >= params.wick_multiplier * effective_body and upper_wick > 0 # If both sides qualify (rare, e.g. near-zero body with wicks both sides), # take the larger wick as the dominant signal. if is_lower_signal and is_upper_signal: return Signal.LONG_WICK if lower_wick >= upper_wick else Signal.SHORT_WICK if is_lower_signal: return Signal.LONG_WICK if is_upper_signal: return Signal.SHORT_WICK return Signal.NONE def position_size(equity: float, entry_price: float, stop_price: float, params: StrategyParams) -> int: """ Shares = (equity * risk_pct) / |entry - stop| Returns whole shares (floored). Returns 0 if stop distance is invalid. """ risk_amount = equity * params.risk_pct stop_distance = abs(entry_price - stop_price) if stop_distance <= 0: return 0 shares = int(risk_amount // stop_distance) return max(shares, 0) def annotate_signals(df: pd.DataFrame, params: StrategyParams) -> pd.DataFrame: """ Adds a 'signal' column to an OHLC dataframe. Expects columns: open, high, low, close """ df = df.copy() df["signal"] = df.apply( lambda row: classify_candle(row["open"], row["high"], row["low"], row["close"], params).value, axis=1, ) return df

反馈

1
开发者 1
等级
(1)
项目
1
0%
仲裁
0
逾期
0
空闲
发布者: 4 代码
2
开发者 2
等级
(3)
项目
2
0%
仲裁
1
0% / 0%
逾期
0
空闲
3
开发者 3
等级
(62)
项目
90
29%
仲裁
24
13% / 58%
逾期
7
8%
工作中
4
开发者 4
等级
(6)
项目
8
38%
仲裁
1
0% / 100%
逾期
0
空闲
5
开发者 5
等级
项目
0
0%
仲裁
0
逾期
0
空闲
6
开发者 6
等级
项目
0
0%
仲裁
0
逾期
0
空闲
7
开发者 7
等级
(22)
项目
28
7%
仲裁
9
33% / 33%
逾期
1
4%
工作中
8
开发者 8
等级
(22)
项目
30
20%
仲裁
8
63% / 13%
逾期
9
30%
空闲
9
开发者 9
等级
(298)
项目
478
40%
仲裁
105
40% / 24%
逾期
82
17%
已载入
发布者: 2 代码
10
开发者 10
等级
(29)
项目
36
39%
仲裁
0
逾期
2
6%
空闲
11
开发者 11
等级
(49)
项目
74
18%
仲裁
30
17% / 53%
逾期
31
42%
空闲
12
开发者 12
等级
项目
0
0%
仲裁
0
逾期
0
空闲
13
开发者 13
等级
项目
0
0%
仲裁
0
逾期
0
空闲
14
开发者 14
等级
项目
0
0%
仲裁
0
逾期
0
空闲
15
开发者 15
等级
项目
0
0%
仲裁
0
逾期
0
空闲
发布者: 2 代码
16
开发者 16
等级
项目
0
0%
仲裁
0
逾期
0
空闲
17
开发者 17
等级
(121)
项目
134
66%
仲裁
36
25% / 56%
逾期
22
16%
空闲
发布者: 10 代码
18
开发者 18
等级
项目
0
0%
仲裁
0
逾期
0
空闲
19
开发者 19
等级
项目
0
0%
仲裁
0
逾期
0
空闲
20
开发者 20
等级
项目
1
0%
仲裁
0
逾期
0
空闲
发布者: 11 代码
21
开发者 21
等级
项目
0
0%
仲裁
0
逾期
0
空闲
22
开发者 22
等级
项目
0
0%
仲裁
0
逾期
0
空闲
23
开发者 23
等级
项目
0
0%
仲裁
0
逾期
0
空闲
24
开发者 24
等级
项目
0
0%
仲裁
0
逾期
0
空闲
25
开发者 25
等级
项目
0
0%
仲裁
0
逾期
0
空闲
26
开发者 26
等级
项目
0
0%
仲裁
0
逾期
0
空闲
发布者: 2 代码
相似订单
Hello, I need an Expert Advisor for MetaTrader 5 in MQL5. 1. GENERAL: Scalping on M1, Monday to Friday, 3 symbols: XAUUSD, EURUSD, GBPUSD. Scan every tick. Fully automatic. NO MARTINGALE, NO GRID, NO HEDGING. 2. TIMEFRAME: M1 ONLY. Use PERIOD_M1 for all indicators. Magic 101010. Comment "Adaptive V11". Deviation 10. Spread filter: >30 points EURUSD/GBPUSD or >50 points XAUUSD = NO TRADE. 3. INDICATORS: EMA 20, EMA
CyberShadow AI 30 - 300 USD
I want a bot that’s trades using smc strategy having stop loss and take profit.I want it to be able to trade with small account I want a disciplined robot but a strong one to I also what it to trade using trend line and locate point of interest
I need an EA for MetaTrader 5 called AI Forex Robot V100. It must trade automatically on EURUSD and GBPUSD, M15 timeframe. Strategy: - Buy when fast EMA crosses above slow EMA and RSI is above 50 - Sell when fast EMA crosses below slow EMA and RSI is below 50 - Only 1 trade at a time - Stop Loss: 50 pips, Take Profit: 100 pips - Lot size: 0.01, with option to change in settings - Must have trailing stop and news
PROJECT: EXISTING MT5 EA MODIFICATION – XAUUSD SLIPPAGE REDUCTION 1. Project Objective I already have a fully developed MT5 Expert Advisor (.mq5 source code). I am looking for an experienced MQL5 developer who can optimize my existing EA to achieve the lowest possible execution slippage on a REAL LIVE trading account. My primary and only objective is to zero slippage. I am not looking for a new trading strategy or
Elektra Trading Robot 100 - 200 USD
Elektra Trading Robot is an automated Forex trading system designed to analyze market conditions execute trades according to predefined trading strategies. It aims to identify potential trading opportunities, manage trading positions, and apply risk management rules to help protect trading capital. The robot is designed for real-account trading and focuses on consistency, disciplined execution, and efficient trade
the final ea must faithfully implement the logic from the provided phython file run cleanly on mt5 and deliver solid backtest result.its shoild be very easy to set up use with clear input parameter proper risk management and no complicated installation steps
Forex Hunter MT5 30 - 250 USD
ثبت طلبك في مواصفات البوت الثاني كذا: الجودة والأمان أهم من السعر، وما يدخل إلا إذا الفرصة قوية، مع حماية عند الخسائر وانقطاع الاتصال وارتفاع السبريد، وتشغيل مستمر على سيرفر، مع اختبارات إلزامية قبل أي تشغيل حقيقي. بهذه الصيغة يصير يشتغل وأنت مرتاح بالِك، لكنه يوقف تلقائيًا وقت عطلة السوق أو أي خلل. بس أكون واضح معك: ما في بوت يضمن عدم الخسارة، خصوصًا بالمضاربات السريعة، هدفنا نقلل المخاطر ونمنع الخسائر غير المنضبطة
I'm looking for an experienced MQL5 developer to create a Opening Range Breakout EA. The EA should identify the high and low of a configurable trading session and open trades when price breaks out of this range. It should include configurable Stop Loss, Take Profit, fixed lot size, break-even option and trading hours. Full mq5 required
Matosfx 30 USD
Am called martin sselubiri I need a robot for trading forex and stock and I want know how this robot works and how much it costs for me to use it
AI Forex Trading Bot for MT4 and MT5 I need an advanced Forex trading robot (Expert Advisor) that works on both MetaTrader 4 and MetaTrader 5. The robot should automatically analyse the Forex market, identify BUY and SELL opportunities, and execute trades when the trading conditions are met. It should support GBPUSD, EURUSD, USDJPY and GBPJPY. The robot should use EMA, RSI, MACD, price action and trend analysis

项目信息

预算
30+ USD