以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=174026)

--  作者:听风是雨
--  发布时间:2020/1/17 8:47:29
--  划线交易
以1000为坐标轴,然后每隔30跳分别向上,向下划线,划n条
这样描述可以吗?

--  作者:FireScript
--  发布时间:2020/1/17 9:13:14
--  
 1.可以先考虑用画线预警处理。比写代码方便。


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

这个线画出来之后 在线上右键-趋势线预警

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



--  作者:FireScript
--  发布时间:2020/1/17 9:14:01
--  
画线过程中是可以在右侧价格轴上看到当前线所在价格位置的,这样就能把线画在自己想要的价格上了。
--  作者:听风是雨
--  发布时间:2020/1/17 9:18:26
--  
但是这个划线能跑程序化吗
--  作者:yukizzc
--  发布时间:2020/1/17 9:20:46
--  
上面图中有显示的,预警触发后下单买入你可以看下
--  作者:wenarm
--  发布时间:2020/1/17 9:25:30
--  

如果代码实现,n必须是个定值。也就是说多个价格层要固定好。

下面是3根的条件。close上穿下穿他们的范例

CSZ:1000;
S1:100+1*30*MINDIFF;
X1:100-1*30*MINDIFF;
//上穿和下破1000

IF CROSS(CLOSE,CSZ)=1 THEN BEGIN
 BUY(HOLDING=0,1,MARKET);
END

IF CROSS(CSZ,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0,1,MARKET);
END

//上穿和下破1000+30个点

IF CROSS(CLOSE,S1)=1 THEN BEGIN
 BUY(HOLDING=0,1,MARKET);
END

IF CROSS(S1,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0,1,MARKET);
END

//上穿和下破1000-30个点

IF CROSS(CLOSE,X1)=1 THEN BEGIN
 BUY(HOLDING=0,1,MARKET);
END

IF CROSS(X1,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0,1,MARKET);
END


--  作者:听风是雨
--  发布时间:2020/1/17 9:30:00
--  
我还想加入其他条件,每天早上九点开始,下午两点结束,每天盈利,亏损50跳停止交易
--  作者:FireScript
--  发布时间:2020/1/17 9:39:58
--  
 VARIABLE:mark:=1;//全局变量控制交易开关
CSZ:3586;//基准线
S1:CSZ+1*30*MINDIFF;
X1:CSZ-1*30*MINDIFF;
tcd:time>=130000 and time<180000;//交易的时间段限制
//上穿和下破1000
if TODAYBAR=1 then mark:=1;//如果是当日第一个K 重置全局变量为1  以开启交易
IF CROSS(CLOSE,CSZ)=1 THEN BEGIN
 BUY(HOLDING=0 and tcd and mark,1,MARKET);
END

IF CROSS(CSZ,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0 and tcd and mark,1,MARKET);
END

//上穿和下破1000+30个点

IF CROSS(CLOSE,S1)=1 THEN BEGIN
 BUY(HOLDING=0 and tcd and mark,1,MARKET);
END

IF CROSS(S1,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0 and tcd and mark,1,MARKET);
END

//上穿和下破1000-30个点

IF CROSS(CLOSE,X1)=1 THEN BEGIN
 BUY(HOLDING=0 and tcd and mark,1,MARKET);
END

IF CROSS(X1,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0 and tcd and mark,1,MARKET);
END

if  abs(c-AVGENTERPRICE)>=50*MINDIFF and holding<>0 then //执行盈亏平仓
begin
盈亏平仓:sell(HOLDING>0,holding,market);
mark:=0;//盈亏平仓时 重置控制变量
end




调整CSZ的值作为画线基准位置。然后如果要增加档位。再增加线就行了
S1:CSZ+1*30*MINDIFF;
X1:CSZ-1*30*MINDIFF;
S2:CSZ+2*30*MINDIFF;
X2:CSZ-2*30*MINDIFF;
.....
.....

同时也要按每增加一档 增加2对开平语句:
IF CROSS(CLOSE,S2)=1 THEN BEGIN
 BUY(HOLDING=0 and tcd,1,MARKET);
END

IF CROSS(S2,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0 and tcd,1,MARKET);
END

IF CROSS(CLOSE,X2)=1 THEN BEGIN
 BUY(HOLDING=0 and tcd,1,MARKET);
END

IF CROSS(X2,CLOSE)=1 THEN BEGIN
 sell(HOLDING>0 and tcd,1,MARKET);
END

[此贴子已经被作者于2020/1/17 10:04:01编辑过]

--  作者:wenarm
--  发布时间:2020/1/17 9:40:47
--  
亏损50跳停止交易。只停止不用止损平仓?
--  作者:听风是雨
--  发布时间:2020/1/17 9:51:09
--  
要平仓的,盈利亏损都平仓