伦敦突破短线交易策略是一种针对外汇市场设计的日内交易策略,它专门利用伦敦交易时段的价格行情,通过简单的突破判断产生交易信号。该策略结合具体的交易时间和价格行为特征,追求短线获利。
只在工作日的伦敦时段交易,例如 GMT 0400-0500。
判断价格短期趋势:三根K线连续上涨做多,三根K线连续下跌做空。
做多信号:当出现三根上涨K线时就入场做多。
做空信号:当出现三根下跌K线时就入场做空。
止盈止损:设定入场价的一定百分比作为止盈止损位。
出场规则:止盈或止损触发后离场;或伦敦时段结束后离场。
该策略只利用简单的突破信号Capture短线趋势,再配合严格的资金管理,以控制每个交易的风险和收益比。
只交易伦敦高活跃时段
简单的价格突破判断信号
严格的止盈止损控制风险
规避夜盘及假日无流动性阶段
明确的入场和出场规则
可能出现进入过早或过晚的问题
存在被套利的风险
夜盘或假日也可能出现交易机会
需要关注关键支持阻力位
伦敦突破短线交易策略非常适合日内短线操作,可以避开市场的混沌时段,在高流动阶段获利离场。通过参数调整可适应更多品种,是一种有效的短线交易策略思路。
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-08 09:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("time zone", overlay=true, initial_capital=1000)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
s = input(title="Session", type=input.session, defval="0400-0500")
s2 = input(title="eXOT", type=input.session, defval="0300-0900")
t1 = time(timeframe.period, s)
t2 = time(timeframe.period, s2)
c2 = #0000FF
//bgcolor(t1 ? c2 : na, transp=85)
UseHAcandles = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===
// === BASE FUNCTIONS ===
haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low
isMon() => dayofweek(time('D')) == dayofweek.monday
isTue() => dayofweek(time('D')) == dayofweek.tuesday
isWed() => dayofweek(time('D')) == dayofweek.wednesday
isThu() => dayofweek(time('D')) == dayofweek.thursday
isFri() => dayofweek(time('D')) == dayofweek.friday
isSat() => dayofweek(time('D')) == dayofweek.saturday
isSun() => dayofweek(time('D')) == dayofweek.sunday
longe = input(true, title="LONG only")
shorte = input(true, title="SHORT only")
//sl=input(0.001, title="sl % price movement")
//accbalance = strategy.initial_capital + strategy.netprofit
entry = close
sl = input(0.005, title = "Stop Loss")
tp = input(0.005, title="Target Price")
// sldist = entry - sl
// tgdist = tp - entry
// slper = sldist / entry * 100
// tgper = tgdist / entry * 100
// rr = tgper / slper
// size = accbalance * riskper / slper
balance = strategy.netprofit + 50000 //current balance
floating = strategy.openprofit //floating profit/loss
risk = input(1,type=input.float,title="Risk % of equity ") //risk % per trade
temp01 = (balance * risk)/100 //Risk in USD
temp02 = temp01/close*sl //Risk in lots
temp03 = temp02*100000 //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
size := 1000 //Set min. lot size
longC = haClose> haClose[1] and haClose[1] > haClose[2] and haClose[2] < haClose[3]
shortC = haClose < haClose[1] and haClose[1] < haClose[2] and haClose[2] > haClose[3]
luni = input(true, title="Monday")
marti = input(true, title="Tuesday")
miercuri = input(true, title="Wednesday")
joi = input(true, title="Thursday")
vineri = input(true, title="Friday")
if(time_cond)
if(t1)
if(luni==true and dayofweek == dayofweek.monday)
if(longC and longe )
strategy.entry("long",1)
if(shortC and shorte)
strategy.entry("short",0)
if(marti==true and dayofweek == dayofweek.tuesday)
if(longC and longe )
strategy.entry("long",1)
if(shortC and shorte)
strategy.entry("short",0)
if(miercuri==true and dayofweek == dayofweek.wednesday)
if(longC and longe )
strategy.entry("long",1)
if(shortC and shorte)
strategy.entry("short",0)
if(joi==true and dayofweek == dayofweek.thursday)
if(longC and longe)
strategy.entry("long",1)
if(shortC and shorte)
strategy.entry("short",0)
if(vineri==true and dayofweek == dayofweek.friday)
if(longC and longe)
strategy.entry("long",1 )
if(shortC and shorte)
strategy.entry("short",0)
//strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong")
//strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort")
strategy.exit("sl","long", loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick)
strategy.exit("sl","short", loss=close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick)
//strategy.close("long")
//strategy.close("short" )
//strategy.exit("sl","long", loss = sl)
//strategy.exit("sl","short", loss= sl)
if(not t2)
strategy.close_all()
//strategy.risk.max_intraday_filled_orders(2)