以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]请老师帮忙添加以上次开仓价的一个止盈止损  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=171446)

--  作者:周道
--  发布时间:2019/8/5 8:46:58
--  [求助]请老师帮忙添加以上次开仓价的一个止盈止损
//定义参数
Input:B(30,1,100,1);//均线和标准差参数

手数:=ss;
//中间变量
MA1:=MA(C,A);//5日均线
MA2:=MA(C,B);//30日均线
//交易条件

BuyCond:=CROSS(MA1,MA2);//开多平空条件
SellCond:=CROSS(MA2,MA1);//开空平多条件

//下单语句
if BuyCond then begin
 Sellshort(holding<0,0,market);//市价平空
 Buy(holding=0,SS,market);//市价开多
end
if SellCond then begin
 Sell(holding>0,0,market);//市价平多
 BuyShort(holding=0,SS,market);//市价开空
end
//止盈止损(我的交易思路是,高于或低于开仓价的最小变动单位10个点止损,高于或低于开仓价20个点止盈一手,其余的一手等符合平空或平多条件时出),谢谢!

--  作者:FireScript
--  发布时间:2019/8/5 10:17:29
--  
 
图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

止盈止损我们都是有现成范例的。可以参考下这里的代码操作下。


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

这里的AvGENTERPRICE 替换成ENTERPRICE 即可。

--  作者:周道
--  发布时间:2019/8/5 11:24:33
--  
//定义参数
Input:B(30,1,100,1);//均线和标准差参数

手数:=ss;
//中间变量
MA1:=MA(C,A);//5日均线
MA2:=MA(C,B);//30日均线
//交易条件

BuyCond:=CROSS(MA1,MA2);//开多平空条件
SellCond:=CROSS(MA2,MA1);//开空平多条件

//下单语句
if BuyCond then begin
 Sellshort(holding<0,0,market);//市价平空全平
 Buy(holding=0,2,market);//市价开多2手
end
if SellCond then begin
 Sell(holding>0,0,market);//市价平多全平
 BuyShort(holding=0,2,market);//市价开空2手
end
//止盈止损
//止盈
IF C-ENTERPRICE>20*MINDIFF THEN BEGIN
SELL(1,HOLDING,MARKET);//高于20点止盈1手
END
IF C+AVGENTERPRICE<20*MINDIFF THEN BEGIN
SELLSHORT(1,HOLDING,MARKET);//低于20点止盈1手

//止损
IF ENTERPRICE-C>10*MINDIFF THEN BEGIN
SELL(2,HOLDING,MARKET);
IF ENTERPRICE-C>10*MINDIFF THEN BEGIN
SELLSHORT(2,HOLDING,MARKET);
END(老师帮看下,修改一下,加载不起)

--  作者:周道
--  发布时间:2019/8/5 11:34:37
--  
//定义参数
Input:B(30,100,1);//均线和标准差参数

手数:=ss;
//中间变量
MA1:=MA(C,A);//5日均线
MA2:=MA(C,B);//30日均线
//交易条件

BuyCond:=CROSS(MA1,MA2);//开多平空条件
SellCond:=CROSS(MA2,MA1);//开空平多条件

//下单语句
if BuyCond then begin
 Sellshort(holding<0,0,market);//市价平空全平
 Buy(holding=0,2,market);//市价开多2手
end
if SellCond then begin
 Sell(holding>0,0,market);//市价平多全平
 BuyShort(holding=0,2,market);//市价开空2手
end
//止盈止损
//止盈
IF C-ENTERPRICE>20*MINDIFF THEN BEGIN
SELL(1,HOLDING,MARKET);//高于20点止盈1手
END
IF C+AVGENTERPRICE<20*MINDIFF THEN BEGIN
SELLSHORT(1,HOLDING,MARKET);//低于20点止盈1手

//止损
IF ENTERPRICE-C>10*MINDIFF THEN BEGIN
SELL(2,HOLDING,MARKET);
IF ENTERPRICE-C>10*MINDIFF THEN BEGIN
SELLSHORT(2,HOLDING,MARKET);
END(请老师帮忙改写下编译通不过)

--  作者:FireScript
--  发布时间:2019/8/5 13:16:53
--  
 编译问题已经此贴回复了:
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=171455