(পরের সংবাদ)
২,trail_offset
পরামিতিঃ ট্র্যাকিং স্টপ লস স্টপ হোল্ডিংয়ের পরে, স্থাপন করা স্থিতিস্থাপক একক সর্বোচ্চ মূল্যের (অধিক করার সময়) বা সর্বনিম্ন মূল্যের (খালি করার সময়) দূরত্বের মধ্যে অবস্থিত।
৩,trail_points
প্যারামিটারঃ যেমনtrail_price
প্যারামিটার, যা কেবলমাত্র প্যাটার্নের সংখ্যা দিয়ে নির্ধারিত হয়।
আমরা একটি কৌশলগত পুনরাবৃত্তি দৃশ্যের মাধ্যমে শেখার বোঝা, যা আসলে খুব সহজ।
/*backtest
start: 2022-09-23 00:00:00
end: 2022-09-23 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
args: [["RunMode",1,358374],["ZPrecision",0,358374]]
*/
strategy("test", overlay = true)
varip a = na
varip highPrice = na
varip isTrade = false
varip offset = 30
if not barstate.ishistory and not isTrade
strategy.entry("test 1", strategy.long, 1)
strategy.exit("exit 1", "test 1", 1, trail_price=close+offset, trail_offset=offset)
a := close + offset
runtime.log("每点价格为:", syminfo.mintick, ",当前close:", close)
isTrade := true
if close > a and not barstate.ishistory
highPrice := na(highPrice) ? close : highPrice
highPrice := close > highPrice ? close : highPrice
plot(a, "trail_price 触发线")
plot(strategy.position_size>0 ? highPrice : na, "当前最高价")
plot(strategy.position_size>0 ? highPrice-syminfo.mintick*offset : na, "移动止损触发线")
কৌশলটি শুরু হলে, তাত্ক্ষণিকভাবে একাধিক শিরোনাম প্রবেশ করুন, এবং তারপরে তাত্ক্ষণিকভাবে পরবর্তীটি করুনstrategy.exit
প্রস্থান অর্ডার (ট্র্যাকিং স্টপ লস স্টপ ট্রিগার প্যারামিটার নির্দিষ্ট করা হয়েছে), যখন বাজারে দামের বৃদ্ধি ট্রেইল_প্রাইস ট্রিগার লাইন অতিক্রম করে, তখন ট্র্যাকিং স্টপ লস স্টপ ট্রিগার লজিক সম্পাদন করা শুরু করে, স্টপ লস স্টপ ট্রিগার লাইন (নীল) সর্বোচ্চ দামের গতিশীল সমন্বয় অনুসরণ করতে শুরু করে, নীল রেখার অবস্থান হল স্টপ লস স্টপ ট্রিগার পজিশনের দাম, অবশেষে যখন বাজারে দামের পরিবর্তন নীল রেখার বাইরে পড়ে তখন পজিশান ট্রিগার করে। এই সংমিশ্রণে চার্টে আঁকা লাইনটি কি না তা বোঝা সহজ নয়।
সুতরাং আমরা এই বৈশিষ্ট্যটি একটি সুপার ট্রেন্ডিং কৌশল অপ্টিমাইজ করার জন্য ব্যবহার করি, আমরা কেবলমাত্র কৌশলটি প্রবেশের আদেশের জন্য একটি নির্দিষ্ট করতে পারি।strategy.exit
এই ট্র্যাকিং স্টপ-ড্যামেজ-অ্যান্টি-হ্যাকিং ফাংশনটি যোগ করা যেতে পারে।
if not barstate.ishistory and findOrderIdx("open") >= 0 and state == 1
trail_price := strategy.position_size > 0 ? close + offset : close - offset
strategy.exit("exit", "open", 1, trail_price=trail_price, trail_offset=offset)
runtime.log("每点价格为:", syminfo.mintick, ",当前close:", close, ",trail_price:", trail_price)
state := 2
tradeBarIndex := bar_index
সম্পূর্ণ কৌশল কোডঃ
/*backtest
start: 2022-05-01 00:00:00
end: 2022-09-27 00:00:00
period: 1d
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
args: [["RunMode",1,358374],["ZPrecision",0,358374]]
*/
varip trail_price = na
varip offset = input(50, "offset")
varip tradeBarIndex = 0
// 0 : idle , 1 current_open , 2 current_close
varip state = 0
findOrderIdx(idx) =>
ret = -1
if strategy.opentrades == 0
ret
else
for i = 0 to strategy.opentrades - 1
if strategy.opentrades.entry_id(i) == idx
ret := i
break
ret
if strategy.position_size == 0
trail_price := na
state := 0
[superTrendPrice, dir] = ta.supertrend(input(2, "atr系数"), input(20, "atr周期"))
if ((dir[1] < 0 and dir[2] > 0) or (superTrendPrice[1] > superTrendPrice[2])) and state == 0 and tradeBarIndex != bar_index
strategy.entry("open", strategy.long, 1)
state := 1
else if ((dir[1] > 0 and dir[2] < 0) or (superTrendPrice[1] < superTrendPrice[2])) and state == 0 and tradeBarIndex != bar_index
strategy.entry("open", strategy.short, 1)
state := 1
// 反向信号,全平
if strategy.position_size > 0 and dir[2] < 0 and dir[1] > 0
strategy.cancel_all()
strategy.close_all()
runtime.log("趋势反转,多头全平")
else if strategy.position_size < 0 and dir[2] > 0 and dir[1] < 0
strategy.cancel_all()
strategy.close_all()
runtime.log("趋势反转,空头全平")
if not barstate.ishistory and findOrderIdx("open") >= 0 and state == 1
trail_price := strategy.position_size > 0 ? close + offset : close - offset
strategy.exit("exit", "open", 1, trail_price=trail_price, trail_offset=offset)
runtime.log("每点价格为:", syminfo.mintick, ",当前close:", close, ",trail_price:", trail_price)
state := 2
tradeBarIndex := bar_index
plot(superTrendPrice, "superTrendPrice", color=dir>0 ? color.red : color.green, overlay=true)