//以下为移动止盈的范例
VARIABLE: aspect=0; //初始化假定做多头
VARIABLE: stopprice=0;//止损价格变量
VARIABLE: stopnum =zy; //止损价差
variable:mypos=0;
variable:mypos1=0;
if barpos = 0 then
stopprice := l - stopnum;
if aspect = 0 then
begin
//多头处理
if l <= stopprice then
begin
//多反空
aspect:= 1;
stopprice := h+stopnum;
end
//处理移动的底部
if l - stopnum > stopprice then
stopprice := l-stopnum;
end
if aspect = 1 then
begin
//空头处理
if h >= stopprice then
begin
//空反多
aspect:= 0;
stopprice := l-stopnum;
end
//处理移动的DING部
if h + stopnum < stopprice then
stopprice := h+stopnum;
end
多止赢:SELL(close<=stopprice and h>=(ENTERPRICE+止盈目标) and openprofit >0,0);
空止赢:SELLshort(close>=stopprice and l<=(ENTERPRICE-止盈目标) and OPENPROFIT>0,0);
这是一个论坛里群主老师给过的一个移动止盈。在图表化交易中可以用的。我将相关函数改成后台交易函数。手工开仓后,到了目标位置不会有交易。请老师指教!!
我的设想是:止盈目标20个价位以上,止损价差5个价位
你完全不明白后台交易,请先自学一下帮助文件里的简易教程,后台交易交易函数和一些相关函数都跟图表交易不一样的,比如buy函数前面就加了T,变成了TBUY。
既然楼主的公式在图表上是可以交易的。
楼主不妨把更改的前台和后台函数 好好检查一下。
实在检查不出来,就把你改前 改后的公式贴出来,让大家帮忙修改。
楼主贴长公式最好用IE的浏览器----贴出来一行一行显示.
原来论坛里有一个高点回落止盈的模板,是按照回落百分比算的。我习惯用回落点数算。
如果用buy、enterprice等函数的话,配合开仓函数,在图标交易中可以自动进行开仓和平仓。
如果我改成如下的后台交易函数,在手工开仓的情况下,不能自动交易。请老师指点。
variable:Tmaxprofit=0;
variable:TWIN:=0;
variable:TWIN2:=0;
if THOLDING> 0 and Tenterbars > 0 then
begin
TWIN:=(C-TENTERPRICE)*1; //记录最大差额
if TWIN > Tmaxprofit then
Tmaxprofit:=TWIN;
TWIN2:=(Tmaxprofit-TWIN)*1; //最大差额后的回调幅度
end
if THOLDING < 0 and Tenterbars > 0 then
begin
TWIN:=(TENTERPRICE-C)*1; //记录最大盈利
if TWIN > Tmaxprofit then
Tmaxprofit:=TWIN;
TWIN2:=(Tmaxprofit-TWIN)*1; //最大差额后的反弹幅度
end
//出现最高盈利后,回落TZY点后止盈
T止多赢:=TSELL(TWIN2 >= TZY and TWIN>=(T止盈目标1) AND THOLDING>0 AND Topenprofit>0,T减仓数量);
T止空赢:=TSELLSHORT(TWIN2 >= TZY and TWIN>=(T止盈目标1) AND THOLDING<0 AND Topenprofit>0, T减仓数量);
tenterbars需要历史的成交记录才能正确返回结果,如果你的成交记录被清空或者是手工再其他位置进行开平仓交易,那么将无法返回正确结果。你可以再交易监控里,看看你所在公式的历史成交记录的开仓记录是否是全的。
成交记录文件在Setting目录,自己打开看看应该能看明白,是<预警名称>+Histroy.Dat。
在手工开仓的情况下,用Tenterprice函数值,好像不是自己的开仓价格??如果在上述函数中,我用
TAVGENTERPRICE可以吗?
金字塔的后台交易部分,使用手工闪电下单的记录,将无法通过比如
TENTERPRICE等与交易记录有关函数中得到结果,但可以通过程式化交易监控中的手工下单干预功能完成此项目的。
以下是引用fly在2010-9-21 15:46:25的发言:
金字塔的后台交易部分,使用手工闪电下单的记录,将无法通过比如TENTERPRICE等与交易记录有关函数中得到结果,但可以通过程式化交易监控中的手工下单干预功能完成此项目的。
原来如此!!那么,程序化交易监控中的手工下单干预功能在哪里??或者,我就不用手工闪电下单??
是不是,下单需手工确认哪里打上勾,在我手工开仓的情况下,
TENTERPRICE函数后台交易就可以了??