指定

""" 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 codes
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 codes
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 codes
16
開発者 16
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
17
開発者 17
評価
(121)
プロジェクト
134
66%
仲裁
36
25% / 56%
期限切れ
22
16%
暇
パブリッシュした人: 10 codes
18
開発者 18
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
19
開発者 19
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
20
開発者 20
評価
プロジェクト
1
0%
仲裁
0
期限切れ
0
暇
パブリッシュした人: 11 codes
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 codes
類似した注文
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
ثبت طلبك في مواصفات البوت الثاني كذا: الجودة والأمان أهم من السعر، وما يدخل إلا إذا الفرصة قوية، مع حماية عند الخسائر وانقطاع الاتصال وارتفاع السبريد، وتشغيل مستمر على سيرفر، مع اختبارات إلزامية قبل أي تشغيل حقيقي. بهذه الصيغة يصير يشتغل وأنت مرتاح بالِك، لكنه يوقف تلقائيًا وقت عطلة السوق أو أي خلل. بس أكون واضح معك: ما في بوت يضمن عدم الخسارة، خصوصًا بالمضاربات السريعة، هدفنا نقلل المخاطر ونمنع الخسائر غير المنضبطة
Name: SteelEdge Platform: MetaTrader 5 (MQL5) Expert Advisor Instruments: XAUUSD, EURUSD, US30 Timeframe: H1 (inputs to change it) STRATEGY - Trend filter: buy only when price is above the 200 EMA, sell only when below - Entry: price pulls back to the 50 EMA and a bullish (buy) or bearish (sell) engulfing candle closes - Confirmation: RSI(14) above 50 for buys, below 50 for sells - Stop loss: 1.5 x ATR(14) - Take
SMC Bot Creation 350 - 550 USD
Hello, I am interested in developing a professional MT5 Expert Advisor similar in functionality and technical sophistication to your reference product, Institutional SMC Robot: https://www.mql5.com/en/market/product/187011 I want to develop my own independent EA based on advanced Smart Money Concepts (SMC), with a strong focus on institutional price action, liquidity and market structure. The key functionalities I
PROJECT: BYBIT PUMP & DUMP EARLY DETECTION ENGINE Fixed Budget: USD $1,000 – Complete Project I am looking for an experienced quantitative trading developer to design, develop, validate and deliver a professional standalone Python 3.12 module for detecting early pump and dump movements on Bybit USDT perpetual futures. IMPORTANT: This is NOT an MT4/MT5 indicator, Expert Advisor or a request to build a complete trading

プロジェクト情報

予算
30+ USD