
प्रवृत्ति रणनीतियाँ आम तौर पर बाजार की दिशा निर्धारित करने के लिए विभिन्न संकेतकों का उपयोग करती हैं, और विभिन्न संकेतकों के संख्यात्मक तुलना परिणामों को व्यापारिक संकेतों के रूप में उपयोग करती हैं। इससे अनिवार्यतः मापदंडों के उपयोग और संकेतकों की गणना की आवश्यकता होगी। चूंकि पैरामीटर्स का उपयोग किया गया है, इसलिए फिटिंग होगी। यह रणनीति कुछ बाजार स्थितियों में बहुत अच्छा प्रदर्शन करती है, लेकिन यदि आप बदकिस्मत हैं और बाजार का रुझान वर्तमान मापदंडों के अनुकूल नहीं है, तो यह रणनीति बहुत खराब प्रदर्शन कर सकती है। इसलिए, मेरी राय में, रणनीति का डिज़ाइन यथासंभव सरल होना चाहिए, और ऐसी रणनीति अधिक मजबूत होगी। आज हम एक प्रवृत्ति रणनीति साझा करेंगे जो संकेतक का उपयोग नहीं करती है। रणनीति कोड बहुत सरल है, केवल 40 पंक्तियाँ।
import time
basePrice = -1
ratio = 0.05
acc = _C(exchange.GetAccount)
lastCancelAll = 0
minStocks = 0.01
def CancelAll():
while True :
orders = _C(exchange.GetOrders)
for i in range(len(orders)) :
exchange.CancelOrder(orders[i]["Id"], orders[i])
if len(orders) == 0 :
break
Sleep(1000)
def main():
global basePrice, acc, lastCancelAll
exchange.SetPrecision(2, 3)
while True:
ticker = _C(exchange.GetTicker)
if basePrice == -1 :
basePrice = ticker.Last
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio :
acc = _C(exchange.GetAccount)
if acc.Balance * ratio / ticker.Last > minStocks :
exchange.Buy(ticker.Last, acc.Balance * ratio / ticker.Last)
basePrice = ticker.Last
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio :
acc = _C(exchange.GetAccount)
if acc.Stocks * ratio > minStocks :
exchange.Sell(ticker.Last, acc.Stocks * ratio)
basePrice = ticker.Last
ts = time.time()
if ts - lastCancelAll > 60 * 5 :
CancelAll()
lastCancelAll = ts
LogStatus(_D(), "\n", "行情信息:", ticker, "\n", "账户信息:", acc)
Sleep(500)
रणनीति का सिद्धांत बहुत सरल है। यह किसी भी संकेतक का उपयोग नहीं करता है, लेकिन केवल वर्तमान मूल्य को ट्रेडिंग ट्रिगर्स के आधार के रूप में उपयोग करता है, और केवल एक मुख्य पैरामीटर हैratioकिसी स्थिति को खोलने की ट्रिगरिंग को नियंत्रित करता है।
लंबा ट्रिगर:
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio
आधार मूल्य से तुलना करने के लिए वर्तमान मूल्य का उपयोग करें। जब वर्तमान मूल्य आधार मूल्य से अधिक हो, और मूल्य अधिक होratio * 100 %, लंबित ऑर्डर सक्रिय हो जाता है और एक लंबा ऑर्डर रखा जाता है।
ऑर्डर देने के बाद, आधार मूल्य को वर्तमान मूल्य में अपडेट कर दिया जाता है।
लघु आदेश ट्रिगर:
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio
शॉर्ट सेलिंग का सिद्धांत एक जैसा है। बेस प्राइस से तुलना करने के लिए मौजूदा कीमत का इस्तेमाल करें। जब मौजूदा कीमत बेस प्राइस से कम हो और कीमत उससे ज़्यादा होratio * 100 %, लंबित ऑर्डर सक्रिय हो जाता है और एक छोटा ऑर्डर रखा जाता है।
ऑर्डर देने के बाद, आधार मूल्य को वर्तमान मूल्य में अपडेट कर दिया जाता है।
प्रत्येक ऑर्डर के लिए ऑर्डर वॉल्यूम उपलब्ध फंड का मूल्य है।ratio * 100 %。
जब तक कि गणना की गई ऑर्डर मात्रा मापदंडों में निर्धारित न्यूनतम लेनदेन मात्रा से कम न होminStocksअन्यथा ऑर्डर दें.
इससे रणनीति के तहत मूल्य परिवर्तनों का अनुसरण करने, उच्च स्तर का पीछा करने और निम्न स्तर पर बेचने की अनुमति मिलती है।
बैकटेस्टिंग अवधि लगभग एक वर्ष है।

ऑपरेशन परिणाम:


हाल ही में, कुछ उपयोगकर्ताओं ने कहा कि पायथन में अपेक्षाकृत कम रणनीतियाँ हैं। मैं भविष्य में पायथन में लिखी गई अधिक रणनीतियाँ साझा करूँगा। रणनीति कोड भी बहुत सरल है, जो शुरुआती लोगों के लिए सीखने के लिए बहुत उपयुक्त है। रणनीति पता: https://www.fmz.com/strategy/181185
यह रणनीति केवल संदर्भ, बैकटेस्टिंग और परीक्षण के लिए है। यदि आप रुचि रखते हैं, तो आप इसे अनुकूलित और अपग्रेड कर सकते हैं।