इस रणनीति में एक निश्चित ग्रिड ट्रेडिंग विधि का उपयोग किया जाता है, जिसमें प्रारंभिक मूल्य और प्रत्येक ग्रिड के अंतराल का अनुपात सेट किया जाता है, और फिर इस अनुपात के अनुसार 10 परतों में एक निश्चित खरीद और बिक्री मूल्य सेट किया जाता है, जिससे कम खरीद और उच्च बिक्री ग्रिड ट्रेडिंग रणनीति प्राप्त होती है।
इस रणनीति में सबसे पहले प्रारंभिक मूल्य sprice और प्रत्येक परत के लिए ग्रिड अंतराल अनुपात gridpercent. और फिर 10 परतों की खरीद और बिक्री की कीमतों की गणना की जाती है, जो कि प्रारंभिक मूल्य और अनुपात के आधार पर होती है।
खरीद मूल्य सूत्र:
b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
…
इसमें p1 से p10 का अनुपात Gridpercent के आधार पर परतों के आधार पर गणना की जाती है।
यह मूल्य सूत्र है:
s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
…
खरीदारी की शर्तें खरीदारी को तब ट्रिगर करती हैं जब समापन मूल्य खरीद मूल्य से कम होता हैः
if (close
strategy.entry(“b1”, strategy.long, when=(close
इसी तरह, जब समापन मूल्य समकक्ष बिक्री मूल्य से अधिक होता है, तो यह बिक्री को ट्रिगर करता हैः
if (close>s1)
strategy.exit(“b1”, when=(close>s1))
इस तरह से एक निश्चित ग्रिड की कम खरीद और अधिक बिक्री की रणनीति को लागू किया जाता है।
इस फिक्स्ड ग्रिड रणनीति के कुछ फायदे हैं:
स्वचालित रूप से कम खरीदें और बेचें, बाजार को समय देने की आवश्यकता नहीं है, जिससे लेनदेन की कठिनाई कम हो जाती है।
उचित ग्रिड अंतराल के साथ, जोखिम को प्रभावी ढंग से नियंत्रित किया जा सकता है, और पीछा करने से बचा जा सकता है।
और यह भी कहा गया है, “यह लाभदायक है, भले ही बाजार में वृद्धि या गिरावट हो।
विभिन्न बाजार स्थितियों के लिए जाली मापदंडों को अनुकूलित करके।
होल्डिंग को विस्तारित किया जा सकता है, जैसे कि ग्रिड परतों की संख्या बढ़ाना।
स्टॉप लॉस के साथ, आप चरम स्थितियों में भारी नुकसान से बच सकते हैं।
इस रणनीति के कुछ जोखिम भी हैं:
जब लेन-देन का लेन-देन होता है, तो लेन-देन की लागत से लाभ कम हो जाता है।
शुरुआती कीमत और ग्रिड सेटअप समय पर नहीं होते हैं, जिससे नुकसान हो सकता है।
एक आकस्मिक घटना के कारण कीमतों में भारी गिरावट के कारण नुकसान हो सकता है।
मशीन ट्रेडिंग सिस्टम में लेन-देन का जोखिम होता है।
इस घटना के बाद से नुकसान में वृद्धि हुई है।
समाधान के लिएः
ट्रेडिंग लागत से अधिक लाभ सुनिश्चित करने के लिए उचित ग्रिड पैरामीटर सेट करें।
अनुकूलन पैरामीटर को वापस मापने के लिए, उचित प्रारंभिक मूल्य और ग्रिड दूरी सेट करें।
जोखिम को नियंत्रित करने के लिए स्टॉप लॉस बढ़ाएं
उचित छूट के साथ लेनदेन की कीमतों को रोकना।
जोखिम नियंत्रण स्थापित करें और अधिकतम नुकसान को सीमित करें।
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
गतिशील रूप से ग्रिड के अंतराल को समायोजित करें, जब उतार-चढ़ाव बढ़ता है तो अंतराल को बड़ा करें, अंतराल को छोटा करें।
ऐतिहासिक डेटा के आधार पर उतार-चढ़ाव की सीमा की गणना, गतिशील रूप से शुरुआती कीमतों को समायोजित करना।
मशीन लर्निंग मॉडल में शामिल करें, कीमतों की भविष्यवाणी करें, गतिशील समायोजन ग्रिड।
उच्च जोखिम वाले स्थानों पर स्टॉप जोड़ें और ऐतिहासिक स्टॉप पॉइंट्स को देखकर स्टॉप पोजीशन को अनुकूलित करें।
पूंजी प्रबंधन रणनीति के साथ, लाभप्रदता के अनुसार गतिशील रूप से स्थिति को समायोजित करें।
स्थिति प्रबंधन को अनुकूलित करें और पूंजी उपयोग दक्षता को अधिकतम करें।
TWAP जैसे एल्गोरिदम का उपयोग करके व्यापार निष्पादन का अनुकूलन करें और झटका लागत को कम करें।
इस रणनीति में फिक्स्ड ग्रिड ट्रेडिंग विधि का उपयोग किया गया है, जो शुरुआती कीमत और ग्रिड अंतराल के अनुपात में खरीद और बिक्री की कीमतों को सेट करता है, स्वचालित रूप से कम खरीद और बेचने के लिए, बाजार में उतार-चढ़ाव का लाभ उठाने के लिए। इसके अलावा, जोखिम नियंत्रण पर भी ध्यान देना चाहिए, पैरामीटर अनुकूलन, गतिशील समायोजन और रोक के माध्यम से लाभ को लॉक करने और घाटे को नियंत्रित करने के लिए। उन्नत मशीन सीखने और धन प्रबंधन के साधनों के साथ, रणनीति की लाभप्रदता और जीत को और बढ़ाया जा सकता है।
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Lionkind
//@version=5
strategy("Grid HW", overlay = true, margin_long = 1, margin_short = 1)
// Fix 35k price as starting point and 1% as a distance
sprice=input(40500,"Starting price")
gridpercent=input(1,"Percent")
// calculate the % of the 10 layers
p1=((gridpercent*1)/100)
p2=((gridpercent*2)/100)
p3=((gridpercent*3)/100)
p4=((gridpercent*4)/100)
p5=((gridpercent*5)/100)
p6=((gridpercent*6)/100)
p7=((gridpercent*7)/100)
p8=((gridpercent*8)/100)
p9=((gridpercent*9)/100)
p10=((gridpercent*10)/100)
//set buy prices
b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
b4=sprice-(sprice*p4)
b5=sprice-(sprice*p5)
b6=sprice-(sprice*p6)
b7=sprice-(sprice*p7)
b8=sprice-(sprice*p8)
b9=sprice-(sprice*p9)
b10=sprice-(sprice*p10)
//set sell prices
s1=b1+(sprice*p1)
s2=b2+(sprice*p1)
s3=b3+(sprice*p1)
s4=b4+(sprice*p1)
s5=b5+(sprice*p1)
s6=b6+(sprice*p1)
s7=b7+(sprice*p1)
s8=b8+(sprice*p1)
s9=b9+(sprice*p1)
s10=b10+(sprice*p1)
//Long conditions
lc1=close<b1
lc2=close<b2
lc3=close<b3
lc4=close<b4
lc5=close<b5
lc6=close<b6
lc7=close<b7
lc8=close<b8
lc9=close<b9
lc10=close<b10
//exit conditions
ec1=close>s1
ec2=close>s2
ec3=close>s3
ec4=close>s4
ec5=close>s5
ec6=close>s6
ec7=close>s7
ec8=close>s8
ec9=close>s9
ec10=close>s10
//long orders
if (lc1)
strategy.entry("b1", strategy.long, when=(lc1))
if (lc2)
strategy.entry("b2", strategy.long, when=(lc2))
if (lc3)
strategy.entry("b3", strategy.long, when=(lc3))
if (lc4)
strategy.entry("b4", strategy.long, when=(lc4))
if (lc5)
strategy.entry("b5", strategy.long, when=(lc5))
if (lc6)
strategy.entry("b6", strategy.long, when=(lc6))
if (lc7)
strategy.entry("b7", strategy.long, when=(lc7))
if (lc8)
strategy.entry("b8", strategy.long, when=(lc8))
if (lc9)
strategy.entry("b9", strategy.long, when=(lc9))
if (lc10)
strategy.entry("b10", strategy.long, when=(lc10))
//exit orders
if (ec1)
strategy.exit("b1", when=(ec1), limit=1)
if (ec2)
strategy.exit("b2", when=(ec2), limit=1)
if (ec3)
strategy.exit("b3", when=(ec3), limit=1)
if (ec4)
strategy.exit("b4", when=(ec4), limit=1)
if (ec5)
strategy.exit("b5", when=(ec5), limit=1)
if (ec6)
strategy.exit("b6", when=(ec6), limit=1)
if (ec7)
strategy.exit("b7", when=(ec7), limit=1)
if (ec8)
strategy.exit("b8", when=(ec8), limit=1)
if (ec9)
strategy.exit("b9", when=(ec9), limit=1)
if (ec10)
strategy.exit("b10", when=(ec10), limit=1)
plot(b1,color=color.green)
plot(s1, color=color.red)
plot(b2, color=color.purple)