分享

python

 止戈敬言2eu603 2018-05-13
  1. import pandas as pd  
  2. import numpy as np  
  3. import datetime  
  4. import time  
  5. #获取数据  
  6. df=pd.read_csv('C:/Users/HXWD/Desktop/000001.csv',encoding='gbk')  
  7. df.columns=['date','code','name','close','high','low','open','preclose',  
  8. 'change','change_per','volume','amt']  
  9. df=df[['date','open','high','low','close','volume','amt']]  
  10. df.head()  
  11. def get_SAR(df,N=10,step=2,maxp=20):  
  12.     sr_value=[]  
  13.     sr_up=[]  
  14.     ep_up=[]  
  15.     af_up=[]  
  16.     sr_down=[]  
  17.     ep_down=[]  
  18.     af_down=[]  
  19.     for i in range(len(df)):  
  20.               
  21.         if i >=N:  
  22.             if len(sr_up)==0 and len(sr_down)==0:  
  23.                 if df.ix[i,'close']>df.ix[0,'close']:  
  24.                      #标记为上涨趋势  
  25.                     sr0=df['low'][0:i].min()  
  26.                     af0=0.02  
  27.                     ep0=df.ix[i,'high']  
  28.                     sr_up.append(sr0)  
  29.                     ep_up.append(ep0)  
  30.                     af_up.append(af0)  
  31.                     sr_value.append(sr0)  
  32.                 if df.ix[i,'close']<=df.ix[0,'close']:  
  33.                     #标记为上涨趋势  
  34.                     sr0=df['high'][0:i].max()  
  35.                     af0=0.02  
  36.                     ep0=df.ix[i,'high']  
  37.                     sr_down.append(sr0)  
  38.                     ep_down.append(ep0)  
  39.                     af_down.append(af0)  
  40.                     sr_value.append(sr0)  
  41.             if len(sr_up)>0:  
  42.                 if df.ix[i-1,'low']>sr_up[-1]:  
  43.                    sr0=sr_up[-1]  
  44.                    ep0=df['high'][-len(sr_up):].max()  
  45.                    if df.ix[i,'high']>df['high'][-(len(sr_up)-1):].max() :  
  46.                       af0=af_up[-1] 0.02  
  47.                    if df.ix[i,'high']<=df['high'][-(len(sr_up)-1):].max() :  
  48.                       af0=af_up[-1]  
  49.                      
  50.                    sr=sr0 af0*(ep0-sr0)  
  51.                    sr_up.append(sr)  
  52.                    ep_up.append(ep0)  
  53.                    af_up.append(af0)  
  54.                    sr_value.append(sr)  
  55.                    print('上涨sr0={},ep0={},af0={},sr={}'.format(sr0,ep0,af0,sr))  
  56.                 if df.ix[i-1,'low']<=sr_up[-1]:  
  57.                    ep0=df['high'][-len(sr_up):].max()  
  58.                    sr0=ep0  
  59.                    af0=0.02  
  60.                    sr_down.append(sr0)  
  61.                    ep_down.append(ep0)  
  62.                    af_down.append(af0)  
  63.                    sr_value.append(sr0)  
  64.                    sr_up=[]  
  65.                    ep_up=[]  
  66.                    af_up=[]  
  67.             if len(sr_down)>0:  
  68.                 if df.ix[i-1,'high']<sr_down[-1]:  
  69.                     sr0=sr_down[-1]  
  70.                     ep0=df['low'][-len(sr_down):].max()  
  71.                     if df.ix[i,'low']<df['low'][-(len(sr_down)-1):].max() :  
  72.                       af0=af_down[-1] 0.02  
  73.                     if df.ix[i,'low']>=df['low'][-(len(sr_down)-1):].max() :  
  74.                       af0=af_down[-1]  
  75.                      
  76.                     sr=sr0 af0*(ep0-sr0)  
  77.                     sr_down.append(sr)  
  78.                     ep_down.append(ep0)  
  79.                     af_down.append(af0)  
  80.                     sr_value.append(sr)  
  81.                     print('下跌sr0={},ep0={},af0={},sr={}'.format(sr0,ep0,af0,sr))  
  82.                 if df.ix[i-1,'high']>=sr_down[-1]:  
  83.                    ep0=df['low'][-len(sr_up):].max()  
  84.                    sr0=ep0  
  85.                    af0=0.02  
  86.                    sr_up.append(sr0)  
  87.                    ep_up.append(ep0)  
  88.                    af_up.append(af0)  
  89.                    sr_value.append(sr0)  
  90.                    sr_down=[]  
  91.                    ep_down=[]  
  92.                    af_down=[]  
  93.     return sr_value  
  94. sar=get_SAR(df)  
import pandas as pd import numpy as np import datetime import time #获取数据 df=pd.read_csv('C:/Users/HXWD/Desktop/000001.csv',encoding='gbk') df.columns=['date','code','name','close','high','low','open','preclose', 'change','change_per','volume','amt'] df=df[['date','open','high','low','close','volume','amt']] df.head() def get_SAR(df,N=10,step=2,maxp=20): sr_value=[] sr_up=[] ep_up=[] af_up=[] sr_down=[] ep_down=[] af_down=[] for i in range(len(df)): if i >=N: if len(sr_up)==0 and len(sr_down)==0: if df.ix[i,'close']>df.ix[0,'close']: #标记为上涨趋势 sr0=df['low'][0:i].min() af0=0.02 ep0=df.ix[i,'high'] sr_up.append(sr0) ep_up.append(ep0) af_up.append(af0) sr_value.append(sr0) if df.ix[i,'close']<=df.ix[0,'close']: #标记为上涨趋势 sr0=df['high'][0:i].max() af0=0.02 ep0=df.ix[i,'high'] sr_down.append(sr0) ep_down.append(ep0) af_down.append(af0) sr_value.append(sr0) if len(sr_up)>0: if df.ix[i-1,'low']>sr_up[-1]: sr0=sr_up[-1] ep0=df['high'][-len(sr_up):].max() if df.ix[i,'high']>df['high'][-(len(sr_up)-1):].max() : af0=af_up[-1] 0.02 if df.ix[i,'high']<=df['high'][-(len(sr_up)-1):].max() : af0=af_up[-1] sr=sr0 af0*(ep0-sr0) sr_up.append(sr) ep_up.append(ep0) af_up.append(af0) sr_value.append(sr) print('上涨sr0={},ep0={},af0={},sr={}'.format(sr0,ep0,af0,sr)) if df.ix[i-1,'low']<=sr_up[-1]: ep0=df['high'][-len(sr_up):].max() sr0=ep0 af0=0.02 sr_down.append(sr0) ep_down.append(ep0) af_down.append(af0) sr_value.append(sr0) sr_up=[] ep_up=[] af_up=[] if len(sr_down)>0: if df.ix[i-1,'high']<sr_down[-1]: sr0=sr_down[-1] ep0=df['low'][-len(sr_down):].max() if df.ix[i,'low']<df['low'][-(len(sr_down)-1):].max() : af0=af_down[-1] 0.02 if df.ix[i,'low']>=df['low'][-(len(sr_down)-1):].max() : af0=af_down[-1] sr=sr0 af0*(ep0-sr0) sr_down.append(sr) ep_down.append(ep0) af_down.append(af0) sr_value.append(sr) print('下跌sr0={},ep0={},af0={},sr={}'.format(sr0,ep0,af0,sr)) if df.ix[i-1,'high']>=sr_down[-1]: ep0=df['low'][-len(sr_up):].max() sr0=ep0 af0=0.02 sr_up.append(sr0) ep_up.append(ep0) af_up.append(af0) sr_value.append(sr0) sr_down=[] ep_down=[] af_down=[] return sr_value sar=get_SAR(df)
  1. #测试下来看,似乎中间逻辑有问题,有时间进一步修改  
#测试下来看,似乎中间逻辑有问题,有时间进一步修改
  1. <span style='color:rgb(85,85,85);font-family:'microsoft yahei';font-size:15px;line-height:35px;'>注:需要单独编写文华财经,金字塔,大智慧,通达信,TB,</span><a href='http://lib.csdn.net/base/python' class='replace_word' title='Python知识库' style='text-decoration:none;color:rgb(223,52,52);font-family:'microsoft yahei';font-size:15px;line-height:35px;font-weight:bold;'>Python</a><span style='color:rgb(85,85,85);font-family:'microsoft yahei';font-size:15px;line-height:35px;'>平台的指标、策略等,请联系扣扣1733505732,兼职时间:工作日下午18:00-22:00,节假日。</span>  
注:需要单独编写文华财经,金字塔,大智慧,通达信,TB,Python平台的指标、策略等,请联系扣扣1733505732,兼职时间:工作日下午18:00-22:00,节假日。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约