到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > 請教語法[交易範例]
總頁數 (3): [1] 2 3 »   上一主題   下一主題
作者
主題 發表新主題    回覆主題
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

請教語法

金叉:=0;
金叉:金叉;//可以顯示底下的輸出值

d:ref(金叉,BARSLAST(金叉));但此行卻出現操作類型錯誤
//**我在不使用新語法打回圈的情況下有何方法於程式頂端取得底下的值並利用作為運算**
//例如 d

A:=ma(c,10);
b:=ma(c,30);
金叉:=CROSS(A,b);

//如何將金叉丟到程式頂端方便加以再次利用

最後由 hwyhon 在 2010-01-13 08:42 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-13 06:08
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

回覆: 請教語法

引用:
最初由 hwyhon 發表
金叉:=0;
金叉:金叉;//可以顯示底下的輸出值

d:ref(金叉,BARSLAST(金叉));但此行卻出現操作類型錯誤
//**我在不使用新語法打回圈的情況下有何方法於程式頂端取得底下的值並利用作為運算**
//例如 d

A:=ma(c,10);
b:=ma(c,30);
金叉:=CROSS(A,b);

//如何將金叉丟到程式頂端方便加以再次利用



金叉:=0;
金叉:金叉;
d:ref(金叉,BARSLAST(金叉)); //此行會出現操作類型錯誤
會出現操作類型錯誤的原因
是因為此刻金叉為單值, 並非數列
單值是無法計算 BARSLAST 的

Re:有何方法於程式頂端取得底下的值並利用作為運算
程式是由上到下執行的
可否說明一下需求想法和目的, 不是很懂您意思

向版主報告此篇 | 查IP位址
Old Post 2010-01-13 09:21
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

//例如我得知金叉成立後才要開始尋找B反轉向上進場//以之前小於進場點的那個B反轉向上A<ref(A,1) and A<refx(A,1)之直為停損出場或A反轉向下或死叉出場
//若先得取得換算後的金叉才來開始尋找B反轉向上點一些程式碼可精簡許多
//則類似此情況若沒沒得知金叉已成立否則須一回接一回程式則會寫得很囉唆
//因此才有此一問
A:ma(c,10),COLORWHITE;
B:ma(c,30),COLORGREEN;
D:ma(c,60),COLORMAGENTA;
金叉:CROSS(B,D);
VERTLINE(金叉),COLORRED,LINEDOT;
死叉:CROSS(D,B);
VERTLINE(死叉),COLORWHITE,LINEDOT;

__________________

就是發蓊梨(ㄛㄥˇ ㄌㄞˊ) 程式交易網站
[教學]指標公式及程式交易系統撰寫 [代工]

學會指標策略程式化的撰寫,將可讓你不再盲目投下辛苦賺來的血汗錢
要知道交易的策略或交易的模式長期執行下確實可獲利
交易才有意義的.否則寧可不交易


最後由 hwyhon 在 2010-01-13 15:25 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-13 14:43
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 hwyhon 發表
//例如我得知金叉成立後才要開始尋找B反轉向上進場//以之前小於進場點的那個B反轉向上A<ref(A,1) and A<refx(A,1)之直為停損出場或A反轉向下或死叉出場
//若先得取得換算後的金叉才來開始尋找B反轉向上點一些程式碼可精簡許多
//則類似此情況若沒沒得知金叉已成立否則須一回接一回程式則會寫得很囉唆
//因此才有此一問
A:ma(c,10),COLORWHITE;
B:ma(c,30),COLORGREEN;
D:ma(c,60),COLORMAGENTA;
金叉:CROSS(B,D);
VERTLINE(金叉),COLORRED,LINEDOT;
死叉:CROSS(D,B);
VERTLINE(死叉),COLORWHITE,LINEDOT;



可否麻煩您以圖舉例說明呢?
這樣較易明瞭

向版主報告此篇 | 查IP位址
Old Post 2010-01-13 17:04
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

抱歉等會重帖

最後由 hwyhon 在 2010-01-13 20:54 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-13 20:42
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

,,,,,,,,,,,,,,,,,,,,,,,

最後由 hwyhon 在 2010-01-13 23:45 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-13 21:01
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

總算劃妥了

A:ma(c,10),COLORWHITE;
B:ma(c,30),COLORGREEN;
D:ma(c,60),COLORMAGENTA;
金叉:CROSS(B,D);
VERTLINE(金叉),COLORRED,LINEDOT;
死叉:CROSS(D,B);
VERTLINE(死叉),COLORWHITE,LINEDOT;

如貼圖

//例如我得知金叉成立後才要開始尋找B反轉向上進場及確定停損值
//以之前小於進場點的那個A均反轉向上A<ref(A,1) and A<refx(A,1)之直為停損L觸價出場
//或A反轉向下(未獲利20點不成立)出場
//或死叉出場

//若程式頂端先取得換算後的金叉才來開始尋找B反轉向上點程式碼可精簡許多
//若沒能得知金叉已成立則一些類似此情況的其它條件程式碼則會寫得很囉唆
//因此才有此一問

hwyhon 附帶上了此圖片:

最後由 hwyhon 在 2010-01-14 00:02 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-13 23:38
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 hwyhon 發表
總算劃妥了

A:ma(c,10),COLORWHITE;
B:ma(c,30),COLORGREEN;
D:ma(c,60),COLORMAGENTA;
金叉:CROSS(B,D);
VERTLINE(金叉),COLORRED,LINEDOT;
死叉:CROSS(D,B);
VERTLINE(死叉),COLORWHITE,LINEDOT;

如貼圖

//例如我得知金叉成立後才要開始尋找B反轉向上進場及確定停損值
//以之前小於進場點的那個A均反轉向上A<ref(A,1) and A<refx(A,1)之直為停損L觸價出場
//或A反轉向下(未獲利20點不成立)出場
//或死叉出場

//若程式頂端先取得換算後的金叉才來開始尋找B反轉向上點程式碼可精簡許多
//若沒能得知金叉已成立則一些類似此情況的其它條件程式碼則會寫得很囉唆
//因此才有此一問



處理示範如下:
原碼:

A
:ma(c,10),COLORWHITE;
B:ma(c,30),COLORGREEN;
D:ma(c,60),COLORMAGENTA;
金叉:CROSS(B,D) or barpos=0 linethick0 colorred;
VERTLINE(金叉),COLORRED,LINEDOT;
死叉:CROSS(D,B) or barpos=0 linethick0 COLORWHITE;
VERTLINE(死叉),COLORWHITE,LINEDOT;

//進訊和出訊處理
前叉:=金叉-死叉 linethick0;
前叉:=ref(前叉,barslast(前叉<>0));
B上揚:=B>ref(B,1) and ref(B<ref(B,1),1);
A上揚:=A>ref(A,1) and ref(A<ref(A,1),1);
A下彎:=A<ref(A,1) and ref(A>ref(A,1),1);
金叉SP:=barslast(金叉);
進訊:=B上揚 and 前叉=or barpos=0;
進訊SP:=barslast(進訊<>0);
進價:=ref(C,進訊SP);
出訊:=A下彎 and C-進價>20 and sum(進訊,金叉SP+1)>and 前叉=or 死叉 or barpos=0;

//過濾連續進和連續出
CK:=進訊-出訊;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
進訊:=CK=1;
出訊:=CK=-1;

//停損處理
前訊:=進訊-出訊;
前訊SP:=barslast(前訊<>0);
前訊:=ref(前訊,前訊SP);
處SP:=ref(barslast(金叉 or 出訊 or 進訊),1)+1;
判價:=SETVAL(進訊,進價,-處SP,進價);
CKSP:=barslast(A上揚 and L<判價);
停損訊:=前訊=and 進訊=and CKSP<=處SP or barpos=0;

//濾除連續停損
停損訊:=前訊=and sum(停損訊,前訊SP+1)=or barpos=0;

//輸出訊號
DRAWICON(進訊,L,4pxdn20;
DRAWICON(出訊,H,5pxup45;
DRAWICON(停損訊,H,12pxup45;


//關鍵字:多空交易範例

向版主報告此篇 | 查IP位址
Old Post 2010-01-14 01:46
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

訊號的完成每人的處理方式都不一
但程式判斷的精簡是關係速度的快與慢
版主的信號處理方式真是佩服
若能將新語法再做個範例
更是狐友之福阿

此題感謝版主詳細的陳述作法

感恩

向版主報告此篇 | 查IP位址
Old Post 2010-01-14 09:58
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

樓上經思索後發覺似乎與我真正想要的狀況有點不達意
我想這樣表達較貼切
金叉成立開始尋多
見紅棒進場停損設此紅棒的低
見黑棒若賺20點以上則出場否則等觸停損出或死叉出
出場後若見紅棒則再進場出場條件則相同一值反複至死叉止

老是麻煩版主真不好意思


A:ma(c,30),COLORGREEN;
B:ma(c,60),COLORMAGENTA;
金叉:=CROSS(A,B) or barpos=0 linethick0 colorred;
VERTLINE(金叉),COLORRED;
死叉:=CROSS(B,A) or barpos=0 linethick0 COLORWHITE;
VERTLINE(死叉),COLORWHITE;

向版主報告此篇 | 查IP位址
Old Post 2010-01-15 12:09
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 hwyhon 發表
樓上經思索後發覺似乎與我真正想要的狀況有點不達意
我想這樣表達較貼切
金叉成立開始尋多
見紅棒進場停損設此紅棒的低
見黑棒若賺20點以上則出場否則等觸停損出或死叉出
出場後若見紅棒則再進場出場條件則相同一值反複至死叉止

老是麻煩版主真不好意思


A:ma(c,30),COLORGREEN;
B:ma(c,60),COLORMAGENTA;
金叉:=CROSS(A,B) or barpos=0 linethick0 colorred;
VERTLINE(金叉),COLORRED;
死叉:=CROSS(B,A) or barpos=0 linethick0 COLORWHITE;
VERTLINE(死叉),COLORWHITE;



原碼:

A
:ma(c,30),COLORGREEN;
B:ma(c,60),COLORMAGENTA;
金叉:=CROSS(A,B) or barpos=0 linethick0 colorred;
VERTLINE(金叉),COLORRED;
死叉:=CROSS(B,A) or barpos=0 linethick0 COLORWHITE;
VERTLINE(死叉),COLORWHITE;

//進出處理
前叉:=金叉-死叉;
前叉:=ref(前叉,barslast(前叉<>0));
進訊:=前叉*0出訊:=進訊停損訊:=進訊;
紅K:=C>O黑K:=C<O;
持倉:=0進場價:=0停損價:=0CC:=CLL:=L;
for 
i=lbound(前叉to datacount do begin  
  
if 紅K[i] and 前叉[i]=and 持倉=0 then begin
    持倉
:=1;  進訊[i]:=1進場價:=CC[i]; 停損價:=LL[i];
  
end else if 持倉=1 then begin
    
if 黑K[i] and CC[i]-進場價>20 or 前叉[i]=-1 then begin
      持倉
:=0出訊[i]:=1;
    
end else if CC[i]<停損價 then begin
      持倉
:=0停損訊[i]:=1;
    
end;
  
end;
end;

//輸出訊號
DRAWICON(進訊,L,4pxdn20;
DRAWICON(出訊,H,5pxup45;
DRAWICON(停損訊,H,12pxup45;

向版主報告此篇 | 查IP位址
Old Post 2010-01-15 17:35
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

請問版主

我的意思就是想表達出此情形
若類似此狀況的情行
如不用打回圈的方式
單靠舊函數有何投機的辦法做到嗎

最後由 hwyhon 在 2010-01-15 18:48 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-15 18:44
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 hwyhon 發表
請問版主

我的意思就是想表達出此情形
若類似此狀況的情行
如不用打回圈的方式
單靠舊函數有何投機的辦法做到嗎



這狀況恐怕僅適合以迴圈處理
原因在於有累算問題

拿 EMA 來解說一下

EMA 算法:
若Y=EMA(X,N)
則Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一週期Y值。

Y' 就是我說的累算狀況
以 YY:EMA(C,N); 為例
自寫公式另算的方法如下:
原碼:

XX
:=C;
StNo:=lbound(XX);
YY:C*0;
YY[StNo]:=XX[StNo];
for 
I=StNo+1 to datacount do begin
  YY
[I]:=(2*XX[i]+(N-1)*YY[I-1])/(N+1);
end;

以您後面此例而言
必須確立前面已經 (停損 or 停利 or 出場) 了
才能決定後面進場要不要被成立
與 EMA 之 Y' 的累算狀況是同樣的

向版主報告此篇 | 查IP位址
Old Post 2010-01-15 19:21
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

簡單來說

基本的進場訊號和出場訊號被定義出來後(非控損控盈出)
濾除連續相同重複訊號, 整合為一進一出後
以這一進一出為波段主軸, 做每一波的操作
再依據該波的績效做控損和控盈
若這波達控損或控盈就提前出場, 等下一波段來了再做(一波段只做一次)
這類指標可用您首例的方法來處理
這類指標訊號較少, 最明顯的例子
就是採均線黃金交叉和死亡交叉做進出

另一類
進場條件被定義出來後
控損控盈或碰出場訊號後, 就出場
若再碰進場條件, 則立即又進場
重複訊號是依據當前有無持倉來決定去留
這類並沒有定義出波段主軸, 每個進訊都可能成為新的一波
這類指標通常訊號較前類來的多(一波段戰鬥很多回)
您的第二例就是如此
這類必需採迴圈處理(因為要知道前面最後的倉位狀態)

不同指標特質不同, 處理手法會有差異
過濾訊號的先後次序與方法, 也是會帶來重大改變
兩類指標各有喜好者, 全看設計者自己想法

向版主報告此篇 | 查IP位址
Old Post 2010-01-15 19:52
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
hwyhon
資深會員

註冊日期: Sep 2004
來  自: 台中
文章數量: 332

感謝板主對這要兩個完全不一樣的進出法以程式做作詳解
解除我以往必須以舊函數一回接續一回才能完成的窘境與疑惑
再次謝謝您

__________________

就是發蓊梨(ㄛㄥˇ ㄌㄞˊ) 程式交易網站
[教學]指標公式及程式交易系統撰寫 [代工]

學會指標策略程式化的撰寫,將可讓你不再盲目投下辛苦賺來的血汗錢
要知道交易的策略或交易的模式長期執行下確實可獲利
交易才有意義的.否則寧可不交易


最後由 hwyhon 在 2010-01-16 09:08 編輯 向版主報告此篇 | 查IP位址
Old Post 2010-01-16 09:03
hwyhon 現在離線 點選這裡查看 hwyhon 的個人資料 點選這裡給 hwyhon 傳送一條短訊 查找更多關於 hwyhon 的文章 增加 hwyhon 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為23:08 發表新主題    回覆主題
總頁數 (3): [1] 2 3 »   上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們