Type/to search
8
Follow
1376
Followers
मात्रात्मक ट्रेडिंग रणनीति - केडीजे संकेतक
Quantpedia
Created 2017-01-16 15:00:09  Updated 2019-08-01 09:22:39
 0
 4353

मात्रात्मक ट्रेडिंग रणनीति - केडीजे संकेतक

केडीजे सूचक, जो कि भविष्य और शेयर बाजारों में सबसे अधिक इस्तेमाल किया जाने वाला तकनीकी विश्लेषण उपकरण है, डॉ. जॉर्ज लेन द्वारा बनाया गया है। केडीजे सूचक गतिशीलता की अवधारणा, मजबूत और कमजोर सूचकांक के कुछ फायदे को जोड़ता है। केडीजे सूचक को मूलभूत डेटा के रूप में गणना की जाती है, जो एक निश्चित अवधि में उच्चतम, निम्नतम, मूल्य और समापन मूल्य के बीच अनुपात के आधार पर होती है।

  • गणना विधिः पहले चक्र के आरएसवी मूल्य की गणना करें, फिर के, डी और जे मान की गणना करें। उदाहरण के लिए, 9 दिन के चक्र के केडीजेः

    RSVt=(Ct-L9)/(H9-L9)*100 (Ct = दिन का समापन मूल्य; L9 = 9 दिनों का सबसे कम मूल्य; H9 = 9 दिनों का सबसे अधिक मूल्य)

    K का मान RSV का 3 दिन का स्लाइडिंग औसत है, सूत्र हैः Kt = RSVt/3+2*t-1/3

    3 दिन की स्लाइडिंग औसत जिसमें D का मान K है, सूत्र हैः Dt = Kt/3+2*Dt-1/3

    J का मान तीन गुना K का मान घटा दो गुना D का मान है, सूत्र है: Jt = 3Dt-2Kt

    केडीजे सूचकांक को लागू करते समय कुछ प्रमुख पहलुओं को ध्यान में रखना चाहिए:

    1. K और D का मूल्यांकन, 0-100 के बीच, 80 से अधिक बाजारों में ओवरबॉय की घटना होती है, 20 से कम ओवरबॉय की घटना होती है।

    2. खरीद सिग्नलः K मूल्य ऊपर की ओर ट्रेंड में <D मूल्य, जब K लाइन ऊपर की ओर D लाइन को तोड़ती है; बेच सिग्नलः K मूल्य नीचे की ओर ट्रेंड में> D मूल्य, जब K लाइन नीचे की ओर D लाइन को तोड़ती है।

    3. निष्क्रिय व्यापार और कम मात्रा में जारी किए गए शेयर केडी सूचकांक पर लागू नहीं होते हैं, जबकि बड़े बाजारों और लोकप्रिय बाजारों के लिए उच्च सटीकता होती है।

    4. केडी के उच्च या निम्न स्तर पर, यदि स्टॉक मूल्य की दिशा से विचलन होता है, तो यह कार्रवाई करने का संकेत है।

    5. J का मूल्यांकन> 100 ओवरबॉट और < 0 ओवरसोल्ड है, जो मूल्य के असामान्य क्षेत्र में हैं।

    6. अल्पकालिक मोड़ चेतावनी सिग्नलः K और D मानों में वृद्धि या गिरावट की गति कम हो जाती है, ढलान धीमा हो जाता है

    सामान्यतः K, D और J का त्रि-मूल्य 20-80 के बीच में होता है, यह देखने लायक है कि संवेदनशीलता के मामले में, सबसे मजबूत J है, उसके बाद K है, और सबसे धीमी गति से D है, और सुरक्षा के मामले में, ठीक इसके विपरीत है।

  • रणनीति कोड (गैर-आविष्कारक के लिए)

import numpy as np import pandas as pd from pandas import DataFrame import talib as ta start = '2006-01-01' # 回测起始时间 end = '2015-08-17' # 回测结束时间 benchmark = 'HS300' # 策略参考标准 universe = set_universe('HS300') capital_base = 100000 # 起始资金 refresh_rate = 1 # 调仓频率,即每 refresh_rate 个交易日执行一次 handle_data() 函数 longest_history=20 MA=[5,10,20,30,60,120] #移动均线参数 def initialize(account): account.kdj=[] def handle_data(account): # 每个交易日的买入卖出指令 sell_pool=[] hist = account.get_history(longest_history) #data=DataFrame(hist['600006.XSHG']) stock_pool,all_data=Get_all_indicators(hist) pool_num=len(stock_pool) if account.secpos==None: print 'null' for i in stock_pool: buy_num=int(float(account.cash/pool_num)/account.referencePrice[i]/100.0)*100 order(i, buy_num) else: for x in account.valid_secpos: if all_data[x].iloc[-1]['closePrice']<all_data[x].iloc[-1]['ma1'] and (all_data[x].iloc[-1]['ma1']-all_data[x].iloc[-1]['closePrice'])/all_data[x].iloc[-1]['ma1']>0.05 : sell_pool.append(x) order_to(x, 0) if account.cash>500 and pool_num>0: try: sim_buy_money=float(account.cash)/pool_num for l in stock_pool: #print sim_buy_money,account.referencePrice[l] buy_num=int(sim_buy_money/account.referencePrice[l]/100.0)*100 #buy_num=10000 order(l, buy_num) except Exception as e: #print e pass def Get_kd_ma(data): indicators={} #计算kd指标 indicators['k'],indicators['d']=ta.STOCH(np.array(data['highPrice']),np.array(data['lowPrice']),np.array(data['closePrice']),\ fastk_period=9,slowk_period=3,slowk_matype=0,slowd_period=3,slowd_matype=0) indicators['ma1']=pd.rolling_mean(data['closePrice'], MA[0]) indicators['ma2']=pd.rolling_mean(data['closePrice'], MA[1]) indicators['ma3']=pd.rolling_mean(data['closePrice'], MA[2]) indicators['ma4']=pd.rolling_mean(data['closePrice'], MA[3]) indicators['ma5']=pd.rolling_mean(data['closePrice'], MA[4]) indicators['closePrice']=data['closePrice'] indicators=pd.DataFrame(indicators) return indicators def Get_all_indicators(hist): stock_pool=[] all_data={} for i in hist: try: indicators=Get_kd_ma(hist[i]) all_data[i]=indicators except Exception as e: #print 'error:%s'%e pass if indicators.iloc[-2]['k']<indicators.iloc[-2]['d'] and indicators.iloc[-1]['k']>indicators.iloc[-2]['d']: stock_pool.append(i) elif indicators.iloc[-1]['k']>=10 and indicators.iloc[-1]['d']<=20 and indicators.iloc[-1]['k']>indicators.iloc[-2]['k'] and indicators.iloc[-2]['k']<indicators.iloc[-3]['k']: stock_pool.append(i) return stock_pool,all_data

प्रोग्रामेटिक ट्रेडर

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)