COCO研究院

 找回密碼
 註冊
搜索
查看: 2760|回復: 8

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

[複製鏈接]
發表於 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[0]>close[frame_pdays];
condition3=close[0]<close[frame_pdays];
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);



 樓主| 發表於 12-10-17 15:11 | 顯示全部樓層
没有人愿意帮忙吗?
發表於 12-10-17 18:46 | 顯示全部樓層
yonghu123 發表於 12-10-17 15:11
没有人愿意帮忙吗?

真的錯很多ㄟ..我也是初學
那本powerlanguage程式交易語法大全去翻翻吧
圖書館也有
指標和訊號要分2個程式
發表於 12-10-17 19:10 | 顯示全部樓層
函數都不對..是PowerLanguage ?
 樓主| 發表於 12-10-18 17:28 | 顯示全部樓層
您好,那本书我已经有了,只是里面完整的例子几乎没有,所以只能照猫画虎。请问一下您说的错误的函数是指哪个,谢谢了。
發表於 12-10-18 17:36 | 顯示全部樓層
好像需要有GVA.dll 這個檔案吧
發表於 12-10-19 17:28 | 顯示全部樓層
要不要把GVA.dll給我, 我幫你試試看...
這個程式要吃GVA.dll檔才能進一步驗證!
 樓主| 發表於 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",(最后这里参数部分要写什么吗?我看书上只是写的数据类型);  

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

问题在哪呢?
發表於 12-10-20 19:16 | 顯示全部樓層
yonghu123 發表於 12-10-20 17:50
谢谢,不过我觉得和那个Dll 文件无关。

比如我将指标改成RSI

提供GVA.dll 才方便其他人幫你
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-25 03:41

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |