yonghu123 發表於 12-10-14 15:14

求助,代码无法通过编译,请帮忙指出问题

我是新手,写了个指标,但在 PowerLanguage Editor 总是无法通过编译,请帮忙指出问题,不胜感激。

代码如下:

DefineDLLFunc: "D:\FILES\STOCK\GVA dll", float, "GVA";


Inputs:
      Length(200),//
      initialCapital(100000),
      frame_ddays(10),
      frame_pdays(250), //
      contr(1), //shares(100)
      Money(0.3);
      arw.size(18);//箭头大小

variables:


var1 = GVA(close,Length);//指标值
var2 = lowstoploss=lowest(low,frame_pdays);//多头停损点
var3 = highstoploss=highest(high,frame_pdays);//空头停损点
var4 = lowdiffer=AbsValue(entryprice-lowstoploss);//
var5 = highdiffer=AbsValue(hithstoploss-entryprice);//
var6 = RiskPercent(Money);
var7 = TotalEquity=initialCapital+NetProfit;
var8 = Exitloss= TotalEquity * RiskPercent;
var9 = id.arw(-1);//箭头

condition1=highest(var1,frame_ddays)<20;
condition2=close>close;
condition3=close<close;
condition4=Exitloss > lowdiffer;
condition5=Exitloss > highdiffer;

//Entry Order

if condition1 and condition2 then
begin sellshort contr next bar at market;
end else if then condition1 and condition3
begin buy contr next bar at market;
end;

// Exit conditions for long

once condition4 begin setstoploss(Exitloss);
end;

if MarketPosition = 1 then begin
   setDollarTraing((lowdiffer)*Bigpointvalue);
end ;

// Exit conditions for short

once condition5 begin setstoploss(Exitloss);
end;

if MarketPosition = -1 then begin
   setDollarTraing((highdiffer)*Bigpointvalue);
end;

// 画出并标示做多箭头向上蓝色改变该K线颜色

if condition1 and condition3 then

begin
    id.arw = ARW_new(date, time, low, false);
    ARW_setsize(id.arw, arw.size);
      Arw_SetText(id.arw , "Buy");
      Arw_SetColor(id.arw , Blue);
      PlotPaintBar(high,low,open,close,"",Blue);
end

// 画出并标示做空买入箭头向下红色改变该K线颜色

if condition1 and condition2 then

begin
    id.arw = ARW_new(date, time, high, true);
    ARW_setsize(id.arw, arw.size);
      Arw_SetText(id.arw , "Sellshort");
      Arw_SetColor(id.arw , Red);
      PlotPaintBar(high,low,open,close,"",Red);
end

// 标出停损点

Plot1(lowstoploss,"LongOut",yellow);
Plot2(highstoploss,"ShortOut",yellow);

//画出GVA 指标

Plot3(var1,"GVA",Green);



yonghu123 發表於 12-10-17 15:11

没有人愿意帮忙吗?

jackshy 發表於 12-10-17 18:46

yonghu123 發表於 12-10-17 15:11 static/image/common/back.gif
没有人愿意帮忙吗?

真的錯很多ㄟ..我也是初學
那本powerlanguage程式交易語法大全去翻翻吧
圖書館也有
指標和訊號要分2個程式

jackshy 發表於 12-10-17 19:10

函數都不對..是PowerLanguage ?

yonghu123 發表於 12-10-18 17:28

您好,那本书我已经有了,只是里面完整的例子几乎没有,所以只能照猫画虎。请问一下您说的错误的函数是指哪个,谢谢了。

moneymaker 發表於 12-10-18 17:36

好像需要有GVA.dll 這個檔案吧{:4_144:}

ichristseng 發表於 12-10-19 17:28

要不要把GVA.dll給我, 我幫你試試看...
這個程式要吃GVA.dll檔才能進一步驗證!

yonghu123 發表於 12-10-20 17:50

本帖最後由 yonghu123 於 12-10-20 17:51 編輯

谢谢,不过我觉得和那个Dll 文件无关。

比如我将指标改成RSI

value1 = RSI(close,Length);

到这一行它总是提示我

------ Compiled with error(s): ------
'('Expected
errLine 13, errColumn 7, errLineEnd 13, errColumnEnd 7
causal study:(Function)

似乎应该是语法或函数上的问题,可惜我目前还不明白。

因为这个程序非常简单,大概意思就是:

调用一个事先写好的指标GVA ,该指标只用收盘价计算没有其他参数,
不知道这一行
DefineDLLFunc: "D:\FILES\STOCK\GVA dll", float, "GVA",(最后这里参数部分要写什么吗?我看书上只是写的数据类型);

然后根据条件做多或者做空,用两个条件止损。
最后画出图,就是这些。

问题在哪呢?

moneymaker 發表於 12-10-20 19:16

yonghu123 發表於 12-10-20 17:50 static/image/common/back.gif
谢谢,不过我觉得和那个Dll 文件无关。

比如我将指标改成RSI


提供GVA.dll 才方便其他人幫你{:4_93:}
頁: [1]
查看完整版本: 求助,代码无法通过编译,请帮忙指出问题