移动止损策略
//概要:首先判断MACD正负值确定开多开空;价格和最新k线比较,k线最高点为空头止损线,价格突破最高点加一跳空头止损并开多头(前提条件macd>0);k线最低点为多头止损线,价格跌破减一跳多头止损并开空头(前提条件macd<0);突破后止损线按突破点移动至相应k线最高、(或最低)点,且不突破不移动。
绝对开多头仓条件,ema3金叉ema36(macd>0);
绝对开空头仓条件,ema3死叉ema36(macd<0)。
详细策略:
//参数精灵:k线周期(m),多空止损滑点(n1),多空开仓滑点(n2),手数(s%或s)
1、多头止损线:
//30分钟(m参数可变周期)macd值大于0(金叉状态),只开多,不开空;
//多头止损平仓条件:30(m参数)分钟k线,价格和前一个k线比较,价格低于最低点,减一跳(n1)瞬间止损;(macd>0不开空,macd<0瞬间反手开空头);
//开多头仓条件:价格和前一个k线比较,价格高于最高点,加一跳(n2)瞬间开多头仓s%仓位(或s手);后续K线连续上破最高点,只要不破最低点,一直保持仓位;(如果macd<0则不开多)
//多头止损线移动条件:最新k线最高点高于上一个k线最高点,止损线移至该最新k线最低点;
//如果价格一直没有突破上一个k线最高点和最低点,无论走多少个k线,保持多头止损线不变。
2、空头止损线(完全相反):
//30分钟(m参数)macd小于0,只开空不开多;
//空头止损平仓条件:30(m参数)分钟k线,价格和最新k线比较,价格高于最高点,加一跳(n1)瞬间止损;此时macd<0不开多,macd>0瞬间反手开多头;
//开空头仓条件:价格和最新k线比较,价格低于最低价,瞬间减一跳(n2)开空头仓s%仓位(或s手);后续价格连续低于上一个k线最低点,只有不破空头止损线,一直保持仓位;如果macd>0则不开空;
//空头止损线移动条件:最新k线最低点低于上一个k线最低点,空头止损线至该k线最高点;如果价格一直没有突破线最高点,无论走多少k线,保持止空头损线不变。
//画出当前的止损线,黄色;
//画线当前的高(或低)点,灰色;
4、开多头条件:macd金叉状态下,ema3金叉ema36开多头仓s%(或s手);
//只开仓,平仓按止损线走;
5、开空头条件:macd死叉状态下,ema3死叉ema36开空头仓s%(或s手);
//只开仓不平仓
(第4、5条不知道需要不需要!)
6、显示仓位,账户现金,当前持仓资产,成功率等等;
恳请老师大侠给我编写一下这个交易策略吧,谢谢老师!!!
抱歉,暂且不提供完整策略编写服务。论坛技术主要是协助客户编写过程中处理一些难点问题。
那么,老师给编写一个突破上一个k线最高点买入的语句:
if h>ref(h,1) and holding=0 then buy(1,1,market);//直接以当前K最高点作为判断依据 大于个K最高点即可。
这句代码意思很简单的。就是当前最高价大于上一个K的最高级,视为突破。
ref(h,1) 就是表示上一个K最高级。
只一句解决不了问题,能不能给我一个大概的流程,我再慢慢看,我实在是没有基础,急着用实盘做交易