该策略主要思路是寻找没有上引线的看涨K线作为买入信号,并在价格跌破前一根K线低点时平仓。该策略利用了看涨K线上引线很小这一特征,表明多方力量强劲,股价继续上涨的概率较大。同时,前一根K线低点作为止损位,可以有效控制风险。
该策略通过选取无上引线的看涨K线入场,利用前一根K线低点止损,可在趋势行情中有效捕捉利润。但策略也存在一定局限性,如止损位置不够灵活,缺乏盈利目标等。可通过引入其他指标过滤信号、优化止损位置和设置盈利目标等方式进行改进,使策略更加稳健有效。
The main idea of this strategy is to find bullish candles without upper wicks as buy signals and close positions when the price breaks below the low of the previous candle. The strategy utilizes the characteristic of bullish candles with very small upper wicks, indicating strong bullish momentum and a higher probability of continued price increases. At the same time, using the low of the previous candle as a stop-loss level can effectively control risk.
This strategy captures profits effectively in trending markets by selecting bullish candles without upper wicks for entry and using the low of the previous candle for stop-loss. However, the strategy also has certain limitations, such as inflexible stop-loss placement and lack of profit targets. Improvements can be made by introducing other indicators to filter signals, optimizing stop-loss positions, and setting profit targets to make the strategy more robust and effective.
/*backtest start: 2024-04-13 00:00:00 end: 2024-05-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © nagpha //@version=5 strategy("My strategy", overlay=true, margin_long=100, margin_short=100) candleBodySize = math.abs(open - close) // Calculate candle wick size candleWickSize = high - close // Calculate percentage of wick to candle body wickPercentage = (candleWickSize / candleBodySize) * 100 // Check if candle is bullish and wick is less than 1% of the body isBullish = close > open isWickLessThan5Percent = wickPercentage < 5 longCondition = isBullish and isWickLessThan5Percent if (longCondition) // log.info("long position taken") strategy.entry("Long Entry", strategy.long) float prevLow = 0.0 prevLow := request.security(syminfo.tickerid, timeframe.period, low[1], lookahead=barmerge.lookahead_on) float closingPrice = close //plot(closingPrice, "Close Price", color.purple, 3) //plot(prevLow, "Previous Low", color.red, 3) //log.info("Outside: {0,number,#}",closingPrice) //log.info("Outside: {0,number,#}",prevLow) if closingPrice < prevLow and strategy.position_size > 0 //log.info("inside close: {0,number} : {0,number}",closingPrice,prevLow) // log.info("position exited") strategy.close("Long Entry") longCondition := false prevLow := 0 isBullish := false //plot(series=strategy.position_size > 0 ? prevLow : na, color = color.new(#40ccfb,0), style=plot.style_cross,linewidth = 5)