- 精华
- 0
- 在线时间
- 67 小时
- UID
- 232
- 积分
- 1532
- 帖子
- 152
- 阅读权限
- 70
- 注册时间
- 2007-8-31
- 最后登录
- 2019-3-31
- 精华
- 0
- UID
- 232
- 积分
- 1532
- 帖子
- 152
- 主题
- 6
- 阅读权限
- 70
- 注册时间
- 2007-8-31
- 最后登录
- 2019-3-31
|
第一课:实例之战
一个文华交易系统的移植例子
多空趋势-交易系统之文华的公式脚本:
[Copy to clipboard] [ - ]CODE:
MA1:=EMA(CLOSE,16);
MA2:=EMA(CLOSE,35),COLORYELLOW;
MA3:=EMA(CLOSE,60);
MA4:=REF(HIGH,1);
LOWV:=LLV(LOW,9);
HIGHV:=HHV(HIGH,9);
RSV:=EMA((CLOSE-LOWV)/(HIGHV-LOWV)*100,3);
K:=EMA(RSV,3);
D:=MA(K,3);
MV5:=MA(VOL,5);
KK:=REF(K,1);
PP:=REF(LOW,1);
VAR3:=(2*CLOSE+HIGH+LOW)/4;
VAR4:=LLV(LOW,33);
VAR5:=HHV(HIGH,33);
ZL:=EMA((VAR3-VAR4)/(VAR5-VAR4)*100,17);
SH:=EMA(0.667*REF(ZL,1)+0.333*ZL,2);
LC:=REF(CLOSE,1);
RSI:=SMA(MAX(CLOSE-LC, 0), 6, 1)/SMA(ABS(CLOSE-LC), 6, 1)*100;
CROSS(CLOSE,MA1)&&(K>D)&&(ZL>SH)||CROSS(MA1,MA2)&&(ZL>SH)&&(VOL>1.25*MV5)&&(K>D)||CROSS(K,D)&&(CLOSE>MA1)&&(ZL>SH)||CROSS(RSI,70),BK;
CROSS(PP,CLOSE)&&(D>K)&&(SH>ZL)||CROSS(D,K)&&(CLOSE<MA1)&&(MA1<MA2)||CROSS(KK,K)&&(SH>ZL),SK;
CROSS(D,K)||(CLOSE<MA1*1.001),SP;
CROSS(K,D)||(CLOSE>MA1*1.001),BP;
TradeBlazer公式代码:
[Copy to clipboard] [ - ]CODE:
//------------------------------------------------------------------------
// 简称: Test
// 名称: 多空趋势交易系统
// 类别: 交易指令
// 类型: 其他
// 输出:
//------------------------------------------------------------------------
Params
Numeric Length1(16);
Numeric Length2(35);
Numeric Length3(9);
Numeric Lots(1);
Vars
NumericSeries Value1;
NumericSeries Value2;
Numeric LowestValue;
NumericSeries Value5;
NumericSeries RSV;
NumericSeries KValue;
NumericSeries DValue;
Numeric AvgVol5;
NumericSeries CloseTmp1;
NumericSeries CloseTmp2;
NumericSeries RSIValue;
NumericSeries PreLow;
NumericSeries PreKValue;
Numeric Lowest33Value;
NumericSeries VarTmp1;
NumericSeries VarTmp2;
NumericSeries ZL;
Numeric SH;
Begin
Value1 = XAverage(Close,Length1);
Value2 = XAverage(Close,Length2);
//取两条均线的值
LowestValue = Lowest(Low,Length3);
//取最低值
Value5 = (CLOSE-LowestValue)/(Highest(High,Length3)-LowestValue)*100;
RSV = XAverage(Value5,3);
KValue = XAverage(RSV,3);
DValue = Average(KValue,3);
PreKValue = KValue[1];
PreLow = Low[1];
AvgVol5 = Average(Vol,5);
Lowest33Value = Lowest(Low,33);
VarTmp1 =((2*CLOSE+HIGH+LOW)/4 - Lowest33Value )/(Highest(High,33) - Lowest33Value) * 100;
ZL = XAverage(VarTmp1,17);
VarTmp2 = 0.667*ZL[1] + 0.333*ZL;
SH = XAverage(VarTmp2,2);
CloseTmp1 = Max(Close - Close[1], 0);
CloseTmp2 = Abs(Close - Close[1]);
RSIValue = WAverage(CloseTmp1,6)/WAverage(CloseTmp2,6) *100;
//以上为KD部分只要如何换书写方式就可了,,higest ==hhv lowest==llv xAverager=ma
// Buy什么时做买入动作,条件
If( (CrossOver(Close,Value1 ) && (KValue > DValue) && (ZL>SH)) Or
(CrossOver(Value1,Value2) && (ZL>SH) && (Vol > 1.25 * AvgVol5) && (KValue > DValue)) Or
(CrossOver(KValue,DValue) && (Close > Value1) && (ZL>SH)) Or
(CrossOver(RSIValue,70)))//条件
{
Buy(Lots,Close);
}
// SellShort 什么作卖出动作
If( (CrossOver(PreLow,Close) && (KValue > DValue ) && (SH>ZL) ) Or
(CrossOver(DValue,KValue) && (Close < Value1) && (Value1 < Value2)) Or
(CrossOver(PreKValue,KValue)&& (SH>ZL)))//条件
{
SellShort(Lots,Close);
}
// Sell 什么做多平动作
If(CrossOver(DValue,KValue) || Close < Value1 * 1.001)//条件
{
Sell;
}
// BuyToCover什么进个做空平动作
If(CrossOver(KValue,DValue) || Close > Value1 * 1.001)//条件
{
BuyToCover;
}
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 用户版本 2007-06-25 10:37
// 版权所有 TradeBlazer
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
[ 本帖最后由 sandboy2005 于 2007-10-7 14:26 编辑 ] |
|