python股票自动 选股 与 止损 止盈 脚本


论止损的重要性:

亏10%涨11%回本;

亏20%涨25%回本;

亏30%涨42.86%回本;

亏40%涨66.67%回本;

亏50%涨100%回本;

亏60%涨150%回本;

亏70%涨233.33%回本;

亏80%涨400%回本;

亏90%涨900%回本;

亏100%永别了。

波动性和不可预测性是市场最根本的特征,这是市场存在的基础,也是交易中风险产生的原因,这是一个不可改变的特征。交易中永远没有确定性,所有的分析预测仅仅是一种可能性,根据这种可能性而进行的交易自然是不确定的,不确定的行为必须得有措施来控制其风险的扩大,止损就这样产生了。

止损是人类在交易过程中自然产生的,并非刻意制作,是投资者保护自己的一种本能反应,市场的不确定性造就了止损存在的必要性和重要性。成功的投资者可能有各自不同的交易方式,但止损却是保障他们获取成功的共同特征。世界投资大师索罗斯说过,投资本身没有风险,失控的投资才有风险。学会止损,千万别和亏损谈恋爱。止损远比盈利重要,因为任何时候保本都是第一位的,盈利是第二位的,建立合理的止损原则相当有效,谨慎的止损原则的核心在于不让亏损持续扩大。

为什么止损如此之难

明白止损的意义固然重要,然而,这并非最终的结果。事实上,投资者设置了止损而没有执行的例子比比皆是,市场上,被扫地出门的悲剧几乎每天都在上演。止损为何如此艰难?

原因有三:其一,侥幸的心理作祟。某些投资者尽管也知道趋势上已经破位,但由于过于犹豫,总是想再看一看、等一等,导致自己错过止损的大好时机;

其二,价格频繁的波动会让投资者犹豫不决,经常性错误的止损会给投资者留下挥之不去的记忆,从而动摇投资者下次止损的决心;

其三,执行止损是一件痛苦的事情,是一个血淋淋的过程,是对人性弱点的挑战和考验。

事实上,每次交易我们都无法确定是正确状态还是错误状态,即便盈利了,我们也难以决定是立即出场还是持有观望,更何况是处于被套状态下。人性追求贪婪的本能会使每一位投资者不愿意少赢几个点,更不愿意多亏几个点。

什么是程序化止损

正是由于上述原因,当价格到达止损位时,有的投资者错失方寸,患得患失,止损位置一改再改;有的投资者临时变卦,逆势加仓,企图孤注一掷,以挽回损失;有的投资者在亏损扩大之后,干脆采取“鸵鸟”政策,听之任之。为了避免这些现象,笔者以为可以采取程序化的止损策略。

国际上的期货交易所通常都会提供止损指令。交易者可以预先设定一个价位,当市场价格达到这个价位时,止损指令立即自动生效。而国内期货交易所目前还没有止损指令,但可以借助先进的期货交易工具,这是目前帮助投资者严格执行止损的一种简单而有效的方法。

目前,国内有的外汇交易系统可以提供市价止损和限价止损两种止损指令。市价止损是指市场价格一触及到预设的止损价位,立刻以市价发送止损委托;限价止损则是在市场价格一触及到预设的止损价位时以限价发送委托。市价止损指令能确保止损成功,而限价止损指令则可以避免在价格不连续时出现不必要的损失,两者各有利弊。通常,在成交活跃的品种上使用市价止损指令,而在成交不活跃的品种上使用限价止损指令。

这种交易系统有助于投资者养成良好的止损习惯,从而规避市场中的风险,使之最大限度地减少损失,使之化被动为主动,在期货市场中立于不败之地。

如何正确理解止损

市场的不确定性和价格的波动性决定了止损常常会是错误的。事实上,在每次交易中,我们也搞不清该不该止损,如果止损对了也许会窃喜,止损错了,则不仅会有资金减少的痛苦,更会有一种被愚弄的痛苦,心灵上的打击才是投资者最难以承受的痛苦。

因此,理解止损本质上就是如何正确理解错误的止损。错误的止损我们也应坦然接受,举个简单的例子,如果在交易中你的止损都是正确的,那就意味着你的每次交易都是正确的,而你的交易如果都是正确的,那又为什么要止损呢?所以,止损是一种成本,是寻找获利机会的成本,是交易获利所必须付出的代价,这种代价只有大小之分,难有对错之分,你要获利,就必须付出代价,包括错误止损所造成的代价。

坦然面对错误的止损,不要回避,更不必恐惧,只有这样,才能正瑺地交易下去,并且最终获利,这就是笔者对止损的理解,包括对错误止损的理解。

止损应注意的问题

其一,“凡事预则立,不预则废”,所有的止损必须在进场之前设定。做期货投资,必须养成一种良好的习惯,就是在开仓的时候就设置好止损,而在亏损出现时再考虑使用什么标准常为时已晚。

其二,止损要与趋势相结合。趋势有三种:上涨、下跌和盘整。在盘整阶段,价格在某一范围内止损的错误性的概率要大,因此,止损的执行要和趋势相结合。在实践中,笔者以为盘整可视作看不懂的趋势,投资者可以休养生息。

其三,选择交易工具来把握止损点位。这要因人而异,可以是均线、趋势线、形态及其他工具,但必须是适合自己的,不要因为别人用得好你就盲目拿来用。交易工具的确定非常重要,而运用交易工具的能力则会导致完全不同的交易结果。

总之,期货交易注重健全的交易策略,其中资金管理可视为其核心,而止损可视为资金管理的灵魂。惟有作好资金管理、严格止损,才能细水长流,成为市场的常胜将军。

这是我网上拷贝过来的,我都懒得写。

看到这里的朋友 ,是不是也跟我一样?觉得啰里啰唆又长又臭。 你以为我现在才知道止损有多重要吗。好笑 我是知道做不到, 因为止损多了手抖 下不了手了

我想大多数人跟我是一样的 设定好的没能及时止损以致出现大亏 。所以写了个python脚本让电脑去执行止损
话不多说先看效果

在这里插入图片描述
在这里插入图片描述

一、使用示例

代码如下(示例):

from thsauto import ThsAuto
from 电脑版选股 import Get_stock
import time



auto = ThsAuto('C:\\同花顺远航版\\transaction\\xiadan.exe') # 连接客户端 

def 功能测试():
    auto = ThsAuto('C:\\同花顺远航版\\transaction\\xiadan.exe') # 连接客户端
    print('可用资金')
    print(auto.get_balance())                               # 获取当前可用资金
    print('持仓')
    print(auto.get_position())      # 获取当前持有的股票
    print('卖出')
    print(auto.sell(stock_no='300315', amount=300, price=0))   # 卖出股票
    
    print('买入')
    result = auto.buy(stock_no='300142', amount=100, price=0)    # 买入股票
    print(result)
    for i in ['300142','002007','002555','000876','601216','300482']:
        auto.buy(stock_no=i, amount=200, price=0)

    print('已成交')
    print(auto.get_filled_orders())                                 # 获取已成交订单
    
    print('未成交')
    print(auto.get_active_orders())                                 # 获取未成交订单
    if result and result['code'] == 0:                                # 如果买入下单成功,尝试撤单
        print('撤单')
        print(auto.cancel(entrust_no=result['entrust_no']))



def 风控(止损=-100,止盈=300):
    for i in auto.get_position()['data']:
        # print(i)
        print(i['盈亏'])
        if float(i["盈亏"]) <= float(止损) or float(i["盈亏"]) > float(止盈):
            auto.sell(stock_no=i['证券代码'], amount=i['可用余额'], price=i['市价'])
            print('卖出')
def 选股():
    #qes = 'macd金叉,dea>0,量比>2,涨幅<3%'
    qes = '60分钟macd金叉,涨幅<3%,量比>1'
    # qes = '(成交额/总市值)>5%,成交额>5亿,换手率>5%,量比>2,kdj金叉'
    # qes = '连续三天量比>2,成交额>10亿,10天涨幅<20%'
    # qes = 'rsi(rsi24值)上穿30,换手率大于3%,涨幅<3%,量比>2'
    # qes = '周平均换手率>10%,上市天数>200天'
    # qes = '基金重仓,基金连续6个季度增仓,上市天数大于500,rsi金叉'
    # qes = '成交额>5亿,涨幅<3%,量比>2'
    # qes = '周rsi上穿30,涨幅<3%,量比>3'
    # qes = "rsi上穿70,量比大于2,dea大于0,股价大于60均线,换手率大于3%,涨幅小于5%"
    # qes = "kdj金叉,量比大于3,dea大于0,股价大于60均线,换手率大于3%,涨幅小于5%"
    # qes = "macd上移,量比大于2,dea大于0,股价大于60均线,换手率大于5%,涨幅小于5%"
    data = Get_stock(qes)
    for i in data:
        print(i)
        auto.buy(stock_no=i["代码"][:-3], amount=100, price=i["价格"])   
def 定时():
    while True:
        time.sleep(2)
        _time = time.strftime('%H%M%S')
        print(_time)
        if _time == '100100':
            选股()
        if _time == '102500' or _time == '112500' or _time == '132600' or _time == '142500':
            风控()         


if __name__ == '__main__':
    # 定时()
    # 功能测试()
    风控()
    选股()

猜你喜欢

转载自blog.csdn.net/qq_20575249/article/details/110730224