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

註冊日期: Jan 2010
來  自:
文章數量: 137

請教如何加入這個買賣訊號的條件?

請教一下,請參閱附圖,那個多翻空的點,基本上不做多翻空的動作,而是多單續抱,主要是要參考下面的指標A的數值,而這個數值我是定義在買賣訊號中給他
指標A_H:=HHV(指標A,0);
指標A_L:=LLV(指標A,0);
這兩個定義,在每一分鐘都會去抓今天的最高與最低值,重點是,當今天倉位發生反轉時(第一筆的多單和空單沒影響),例如由"空進"變成"空翻多"時這時候的指標A_H和指標A_L都要捨棄之前的最高與最低,也就是要從這一分鐘重新計算最高與最低請問這要怎麼寫在買賣訊號中呢?
我能想到的方法是在發生反轉訊號時同時去將指標A_H與指標A_L改成當下的數值,例如原本的指標A_H為-100, 指標A_L為:-2500,當下的多空指標為-1400, 這時訊號發生反轉,則同時將指標A_H改為-1400, 指標A_L改為:-1400,後面如果指標A更低時(ex.-1500),則這個指標A_L則變為-1500, 更高時(ex.-100),則此指標A_H變為-100,
要怎麼加這個條件呢?

進L:=多進 or barpos=0;
出L:=多出 or barpos=0;
進S:=空進 or barpos=0;
出S:=空出 or barpos=0;
NowLS:=0; //1.多, -1.空, 0.無
DoLS:C*0; CC:=C; HH:=H; LL:=L;
Do進:=進L-進S; Do出:=出L-出S;
損控:=30; 控盈基:=50; 控盈衰率:=33/100;
for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then 進價:=CC[i];
end else begin
if NowLS=-Do進[i] then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS*3; 進價:=CC[i]; Max盈:=0;//反手
end else begin
損HL:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
盈利:=(CC[i]-進價)*NowLS;
if (損HL-進價)*NowLS<=-損控 then begin
DoLS[i]:=NowLS*5; NowLS:=0; //停損出
end else begin
盈衰:=Max盈-盈利;
if 盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
DoLS[i]:=NowLS*4; NowLS:=0; //盈衰出
end else if NowLS=Do出[i] then begin
DoLS[i]:=Do出[i]*2; NowLS:=0; //訊號出
end;
end;
if 盈利>Max盈 then Max盈:=盈利;
end;
end;
end;
//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出

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

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

引用:
最初由 yisong 發表
請教一下,請參閱附圖,那個多翻空的點,基本上不做多翻空的動作,而是多單續抱,主要是要參考下面的指標A的數值,而這個數值我是定義在買賣訊號中給他
指標A_H:=HHV(指標A,0);
指標A_L:=LLV(指標A,0);
這兩個定義,在每一分鐘都會去抓今天的最高與最低值,重點是,當今天倉位發生反轉時(第一筆的多單和空單沒影響),例如由"空進"變成"空翻多"時這時候的指標A_H和指標A_L都要捨棄之前的最高與最低,也就是要從這一分鐘重新計算最高與最低請問這要怎麼寫在買賣訊號中呢?
我能想到的方法是在發生反轉訊號時同時去將指標A_H與指標A_L改成當下的數值,例如原本的指標A_H為-100, 指標A_L為:-2500,當下的多空指標為-1400, 這時訊號發生反轉,則同時將指標A_H改為-1400, 指標A_L改為:-1400,後面如果指標A更低時(ex.-1500),則這個指標A_L則變為-1500, 更高時(ex.-100),則此指標A_H變為-100,
要怎麼加這個條件呢?

進L:=多進 or barpos=0;
出L:=多出 or barpos=0;
進S:=空進 or barpos=0;
出S:=空出 or barpos=0;
NowLS:=0; //1.多, -1.空, 0.無
DoLS:C*0; CC:=C; HH:=H; LL:=L;
Do進:=進L-進S; Do出:=出L-出S;
損控:=30; 控盈基:=50; 控盈衰率:=33/100;
for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then 進價:=CC[i];
end else begin
if NowLS=-Do進[i] then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS*3; 進價:=CC[i]; Max盈:=0;//反手
end else begin
損HL:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
盈利:=(CC[i]-進價)*NowLS;
if (損HL-進價)*NowLS<=-損控 then begin
DoLS[i]:=NowLS*5; NowLS:=0; //停損出
end else begin
盈衰:=Max盈-盈利;
if 盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
DoLS[i]:=NowLS*4; NowLS:=0; //盈衰出
end else if NowLS=Do出[i] then begin
DoLS[i]:=Do出[i]*2; NowLS:=0; //訊號出
end;
end;
if 盈利>Max盈 then Max盈:=盈利;
end;
end;
end;
//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出



原碼:

進L
:=多進 or barpos=0
出L:=多出 or barpos=0;
進S:=空進 or barpos=0;
出S:=空出 or barpos=0;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
Do進:=進L-進SDo出:=出L-出S;
損控:=30控盈基:=50控盈衰率:=33/100;
指標A_H:=C*0指標A_L:=指標A_H
for 
i=1 to datacount do begin
  
if NowLS=0 then begin
    NowLS
:=Do進[i]; DoLS[i]:=NowLSMax盈:=0;
    if 
NowLS<>0 then begin
      進價
:=CC[i]; 指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
    
end;
  
end else begin
    
if 指標A[i]>指標A_H[ithen 指標A_H[i]:=指標A[i];
    if 
指標A[i]<指標A_L[ithen 指標A_L[i]:=指標A[i];
    if 
NowLS=-Do進[ithen begin
      NowLS
:=Do進[i]; DoLS[i]:=NowLS*3進價:=CC[i]; Max盈:=0;//反手
      
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
    
end else begin
      損HL
:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
      
盈利:=(CC[i]-進價)*NowLS;
      if (
損HL-進價)*NowLS<=-損控 then begin
        DoLS
[i]:=NowLS*5NowLS:=0//停損出
      
end else begin
        盈衰
:=Max盈-盈利;
        if 
盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
          DoLS
[i]:=NowLS*4NowLS:=0//盈衰出
        
end else if NowLS=Do出[ithen begin
          DoLS
[i]:=Do出[i]*2NowLS:=0//訊號出
        
end;
      
end;
      if 
盈利>Max盈 then Max盈:=盈利;
    
end;
  
end;
end;
//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出

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

註冊日期: Jan 2010
來  自:
文章數量: 137

..................
謝謝版主,我再試試看,另外
if 指標A[i]<指標A_L[i] then 指標A_L[i]:=指標L [i];要修改成
if 指標A[i]<指標A_L[i] then 指標A_L[i]:=指標A [i];
因為沒有"指標L"這個參數

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

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

引用:
最初由 yisong 發表
謝謝版主,我再試試看,另外
if 指標A[i]<指標A_L[i] then 指標A_L[i]:=指標L [i];要修改成
if 指標A[i]<指標A_L[i] then 指標A_L[i]:=指標A [i];
因為沒有"指標L"這個參數



已改正, 謝謝!

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

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
已改正, 謝謝!

試過以後還是一樣的結果,那個多翻空的訊號還是存在,完整程式碼如下,請幫忙看一下哪裡還有問題,謝謝。

指標A:=STKINDI('','指標1.比值',0,-1) LINETHICK0;
指標A_H:=HHV(指標A,0);
指標A_L:=LLV(指標A,0);
多單條件:=CROSS(指標A,指標A_L+100);
多單出場:=CROSS(指標A_H-100,指標A);
空單條件:=CROSS(指標A_H-100,指標A);
空單出場:=CROSS(指標A,指標A_L+100);
強出:=time>133000;
進L:=多單條件and 指標A_L>0 and 強出=0 or barpos=0;
出L:=多單出場or barpos=0;
進S:=空單條件and 指標A_H<0 and 強出=0 or barpos=0;
出S:=空單出場or barpos=0;

NowLS:=0; //1.多, -1.空, 0.無
DoLS:=C*0; CC:=C; HH:=H; LL:=L;
Do進:=進L-進S; Do出:=出L-出S;
損控:=30; 控盈基:=50; 控盈衰率:=33/100;
指標A_H:=C*0; 指標A_L:=指標A_H;

for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then begin
進價:=CC[i]; 指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end;
end else begin
if 指標A[i]>指標A_H[i] then 指標A_H[i]:=指標A[i];
if 指標A[i]<指標A_L[i] then 指標A_L[i]:=指標A[i];
if NowLS=-Do進[i] then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS*3; 進價:=CC[i]; Max盈:=0;//反手
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end else begin
if 強出[i] then begin
DoLS[i]:=NowLS*6; NowLS:=0; //強制出場
end else begin
損HL:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
盈利:=(CC[i]-進價)*NowLS;
if (損HL-進價)*NowLS<=-損控 then begin
DoLS[i]:=NowLS*5; NowLS:=0; //停損出
end else begin
盈衰:=Max盈-盈利;
if 盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
DoLS[i]:=NowLS*4; NowLS:=0; //盈衰出
end else if NowLS=Do出[i] then begin
DoLS[i]:=Do出[i]*2; NowLS:=0; //訊號出
end;
end;
if 盈利>Max盈 then Max盈:=盈利;
end;
end;
end;
end;

//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出, 6.強制出場
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出, -6.強制出場
//整併後的結果
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5 or DoLS=6; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5 or DoLS=-6; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;

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

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

引用:
最初由 yisong 發表
試過以後還是一樣的結果,那個多翻空的訊號還是存在,完整程式碼如下,請幫忙看一下哪裡還有問題,謝謝。

指標A:=STKINDI('','指標1.比值',0,-1) LINETHICK0;
指標A_H:=HHV(指標A,0);
指標A_L:=LLV(指標A,0);
多單條件:=CROSS(指標A,指標A_L+100);
多單出場:=CROSS(指標A_H-100,指標A);
空單條件:=CROSS(指標A_H-100,指標A);
空單出場:=CROSS(指標A,指標A_L+100);
強出:=time>133000;
進L:=多單條件and 指標A_L>0 and 強出=0 or barpos=0;
出L:=多單出場or barpos=0;
進S:=空單條件and 指標A_H<0 and 強出=0 or barpos=0;
出S:=空單出場or barpos=0;

NowLS:=0; //1.多, -1.空, 0.無
DoLS:=C*0; CC:=C; HH:=H; LL:=L;
Do進:=進L-進S; Do出:=出L-出S;
損控:=30; 控盈基:=50; 控盈衰率:=33/100;
指標A_H:=C*0; 指標A_L:=指標A_H;

for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then begin
進價:=CC[i]; 指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end;
end else begin
if 指標A[i]>指標A_H[i] then 指標A_H[i]:=指標A[i];
if 指標A[i]<指標A_L[i] then 指標A_L[i]:=指標A[i];
if NowLS=-Do進[i] then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS*3; 進價:=CC[i]; Max盈:=0;//反手
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end else begin
if 強出[i] then begin
DoLS[i]:=NowLS*6; NowLS:=0; //強制出場
end else begin
損HL:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
盈利:=(CC[i]-進價)*NowLS;
if (損HL-進價)*NowLS<=-損控 then begin
DoLS[i]:=NowLS*5; NowLS:=0; //停損出
end else begin
盈衰:=Max盈-盈利;
if 盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
DoLS[i]:=NowLS*4; NowLS:=0; //盈衰出
end else if NowLS=Do出[i] then begin
DoLS[i]:=Do出[i]*2; NowLS:=0; //訊號出
end;
end;
if 盈利>Max盈 then Max盈:=盈利;
end;
end;
end;
end;

//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出, 6.強制出場
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出, -6.強制出場
//整併後的結果
進L:=DoLS=1 or DoLS=3; //多進
出L:=DoLS=2 or DoLS=-3 or DoLS=4 or DoLS=5 or DoLS=6; //多出
進S:=DoLS=-1 or DoLS=-3; //空進
出S:=DoLS=-2 or DoLS=3 or DoLS<=-4 or DoLS=-5 or DoLS=-6; //空出
ENTERLONG:進L;
EXITLONG:出L;
ENTERSHORT:進S;
EXITSHORT:出S;



請確認原始帶入該處的訊號是否存在
確認方法:
 請單獨跑下面此段公式, 觀看那位置的變數值

指標A:=STKINDI('','指標1.比值',0,-1) LINETHICK0;
指標A_H:=HHV(指標A,0);
指標A_L:=LLV(指標A,0);
多單條件:=CROSS(指標A,指標A_L+100);
多單出場:=CROSS(指標A_H-100,指標A);
空單條件:=CROSS(指標A_H-100,指標A);
空單出場:=CROSS(指標A,指標A_L+100);
強出:time>133000 linethick;
進L:多單條件 and 指標A_L>0 and 強出=0 or barpos=0 linethick;
出L:多單出場 or barpos=0 linethick;
進S:空單條件 and 指標A_H<0 and 強出=0 or barpos=0 linethick;
出S:空單出場 or barpos=0 linethick;
//後面不接其他程式

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

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
請確認原始帶入該處的訊號是否存在
確認方法:
 請單獨跑下面此段公式, 觀看那位置的變數值

指標A:=STKINDI('','指標1.比值',0,-1) LINETHICK0;
指標A_H:=HHV(指標A,0);
指標A_L:=LLV(指標A,0);
多單條件:=CROSS(指標A,指標A_L+100);
多單出場:=CROSS(指標A_H-100,指標A);
空單條件:=CROSS(指標A_H-100,指標A);
空單出場:=CROSS(指標A,指標A_L+100);
強出:time>133000 linethick;
進L:多單條件 and 指標A_L>0 and 強出=0 or barpos=0 linethick;
出L:多單出場 or barpos=0 linethick;
進S:空單條件 and 指標A_H<0 and 強出=0 or barpos=0 linethick;
出S:空單出場 or barpos=0 linethick;
//後面不接其他程式


套用這段那個位置的出L與進S都為1,進L與出S為0

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

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

引用:
最初由 yisong 發表
套用這段那個位置的出L與進S都為1,進L與出S為0


出L為1 代表多單出場
進S為1 代表空單進場

即是多翻空, 並非續抱多單
代表帶入的訊號就是如此, 後續的程式處理上並沒有錯唷

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

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
出L為1 代表多單出場
進S為1 代表空單進場

即是多翻空, 並非續抱多單
代表帶入的訊號就是如此, 後續的程式處理上並沒有錯唷


的確沒錯,不過先回到原本的問題來討論
"當今天倉位發生反轉時(第一筆的多單和空單沒影響),例如由"空進"變成"空翻多"時這時候的指標A_H和指標A_L都要捨棄之前的最高與最低,也就是要從這一分鐘重新計算最高與最低請問這要怎麼寫在買賣訊號中呢?"
就是因為使用剛剛那段的寫法會讓那個多轉空的時間點去抓到今天的最高根最低值來運算,所以才會想到用下面的方式在中間有發生轉換多單或空單時reset原本的數值來避免,請幫忙,謝謝。

"我能想到的方法是在發生反轉訊號時同時去將指標A_H與指標A_L改成當下的數值,例如原本的指標A_H為-100, 指標A_L為:-2500,當下的多空指標為-1400, 這時訊號發生反轉,則同時將指標A_H改為-1400, 指標A_L改為:-1400,後面如果指標A更低時(ex.-1500),則這個指標A_L則變為-1500, 更高時(ex.-100),則此指標A_H變為-100,
要怎麼加這個條件呢?"

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

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

引用:
最初由 yisong 發表
的確沒錯,不過先回到原本的問題來討論
"當今天倉位發生反轉時(第一筆的多單和空單沒影響),例如由"空進"變成"空翻多"時這時候的指標A_H和指標A_L都要捨棄之前的最高與最低,也就是要從這一分鐘重新計算最高與最低請問這要怎麼寫在買賣訊號中呢?"
就是因為使用剛剛那段的寫法會讓那個多轉空的時間點去抓到今天的最高根最低值來運算,所以才會想到用下面的方式在中間有發生轉換多單或空單時reset原本的數值來避免,請幫忙,謝謝。

"我能想到的方法是在發生反轉訊號時同時去將指標A_H與指標A_L改成當下的數值,例如原本的指標A_H為-100, 指標A_L為:-2500,當下的多空指標為-1400, 這時訊號發生反轉,則同時將指標A_H改為-1400, 指標A_L改為:-1400,後面如果指標A更低時(ex.-1500),則這個指標A_L則變為-1500, 更高時(ex.-100),則此指標A_H變為-100,
要怎麼加這個條件呢?"



裡面已經有此處理了
...............
if NowLS=-Do進[i] then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS*3; 進價:=CC[i]; Max盈:=0;//反手
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end else begin
...............

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

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

您的問題是在於
指標A_H 和 指標A_L 在迴圈中會去因應訊號改變數值
然而卻在迴圈外(迴圈計算前), 您就去用這兩者計算進出訊號
計算的次序不對, 當然會和您所想的不一樣囉

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

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
您的問題是在於
指標A_H 和 指標A_L 在迴圈中會去因應訊號改變數值
然而卻在迴圈外(迴圈計算前), 您就去用這兩者計算進出訊號
計算的次序不對, 當然會和您所想的不一樣囉


這樣我大概清楚了,只不過版主原本給的源碼中給定第一筆指標A_H與指標A_L的資料是在第一筆單進場後才給定
for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then begin
進價:=CC[i]; 指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end;
end else begin
但是真正成是在跑的時候是要在第一個訊號產生前就要先給定指標A_H與指標A_L的數值,才有辦法進第一筆單,真正要reset這兩個數值是在倉位反轉時才需要,如果是這樣的話,要解決原先講的次序不對的問題,是否把再回圈前的這個參數拿掉然後把迴區內的指標A_H與指標A_L的數值移到迴圈最前面,如下,但目前最大的問題是,多單和空單進場的條件是有引用到這個指標A_H與指標A_L,要怎麼改呢?
for i=1 to datacount do begin
if NowLS=0 then begin
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then begin
進價:=CC[i];
end;
end else begin
請總版主幫忙看一下這樣觀念對不對,謝謝

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

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

引用:
最初由 yisong 發表
這樣我大概清楚了,只不過版主原本給的源碼中給定第一筆指標A_H與指標A_L的資料是在第一筆單進場後才給定
for i=1 to datacount do begin
if NowLS=0 then begin
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then begin
進價:=CC[i]; 指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
end;
end else begin
但是真正成是在跑的時候是要在第一個訊號產生前就要先給定指標A_H與指標A_L的數值,才有辦法進第一筆單,真正要reset這兩個數值是在倉位反轉時才需要,如果是這樣的話,要解決原先講的次序不對的問題,是否把再回圈前的這個參數拿掉然後把迴區內的指標A_H與指標A_L的數值移到迴圈最前面,如下,但目前最大的問題是,多單和空單進場的條件是有引用到這個指標A_H與指標A_L,要怎麼改呢?
for i=1 to datacount do begin
if NowLS=0 then begin
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
NowLS:=Do進[i]; DoLS[i]:=NowLS; Max盈:=0;
if NowLS<>0 then begin
進價:=CC[i];
end;
end else begin
請總版主幫忙看一下這樣觀念對不對,謝謝



看看是否為您要的結果:
原碼:

指標A
:=STKINDI('','指標1.比值',0,-1LINETHICK0;
強出:=time>133000;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
損控:=30控盈基:=50控盈衰率:=33/100;
StNo:=lbound(指標A);
指標A_H:=指標A*0指標A_L:=指標A*0;
指標A_H[StNo]:=指標A[StNo]; 指標A_L[StNo]:=指標A[StNo];
for 
i=StNo+1 to datacount do begin
  指標A_H
[i]:=指標A_H[i-1]; 指標A_L[i]:=指標A_L[i-1];
  if 
指標A[i]>指標A_H[ithen 指標A_H[i]:=指標A[i];
  if 
指標A[i]<指標A_L[ithen 指標A_L[i]:=指標A[i];
  
進L:=指標A[i]>指標A_L[i]+100 and Not(指標A[i-1]>指標A_L[i-1]+100) and 指標A_L[i]>and 強出[i]=0//多進
  
進S:=指標A_H[i]-100>指標A[i] and Not(指標A_H[i-1]-100>指標A[i-1]) and 指標A_H[i]<and 強出[i]=0//空進
  
出L:=進S//多出
  
出S:=進L//空出
  
Do進:=進L-進SDo出:=出L-出S;
  if 
NowLS=0 then begin
    NowLS
:=Do進DoLS[i]:=NowLSMax盈:=0;
    if 
NowLS<>0 then begin
      進價
:=CC[i]; 指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
    
end;
  
end else begin
    
if NowLS=-Do進 then begin
      NowLS
:=Do進DoLS[i]:=NowLS*3進價:=CC[i]; Max盈:=0;//反手
      
指標A_H[i]:=指標A[i]; 指標A_L[i]:=指標A[i];
    
end else begin
      
if 強出[ithen begin
        DoLS
[i]:=NowLS*6NowLS:=0//強制出場
      
end else begin
        損HL
:=LL[i]*(NowLS=1)+HH[i]*(NowLS=-1);
        
盈利:=(CC[i]-進價)*NowLS;
        if (
損HL-進價)*NowLS<=-損控 then begin
          DoLS
[i]:=NowLS*5NowLS:=0//停損出
        
end else begin
          盈衰
:=Max盈-盈利;
          if 
盈衰>Max盈*控盈衰率 and Max盈>控盈基 then begin
            DoLS
[i]:=NowLS*4NowLS:=0//盈衰出
          
end else if NowLS=Do出 then begin
            DoLS
[i]:=Do出*2NowLS:=0//訊號出
          
end;
        
end;
        if 
盈利>Max盈 then Max盈:=盈利;
      
end;
    
end;
  
end;
end;
//DoLS意義:
// 1.多進, 2.多出, 3.空翻多, 4.多盈衰出, 5.多損出
//-1.空進,-2.空出, -3.多翻空, -4.空盈衰出, -5.空損出

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

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
看看是否為您要的結果:
原碼:

指標A
:=STKINDI('','指標1.比值',0,-1LINETHICK0;
強出:=time>133000;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
損控:=30控盈基:=50控盈衰率:=33/100;
StNo:=lbound(指標A);
指標A_H:=指標A*0指標A_L:=指標A*0;
指標A_H[StNo]:=指標A[StNo]; 指標A_L[StNo]:=指標A[StNo];
----
以下簡略----



看來似乎可以了,謝謝總版主的幫忙

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

註冊日期: Jan 2010
來  自:
文章數量: 137

引用:
最初由 cgjj 發表
看看是否為您要的結果:
原碼:

指標A
:=STKINDI('','指標1.比值',0,-1LINETHICK0;
強出:=time>133000;
NowLS:=0//1.多, -1.空, 0.無
DoLS:C*0CC:=CHH:=HLL:=L;
----
以下簡略-----



請教版主在奇狐勝券 v5.1 Beta版中,似乎"DoLS:C*0;"這一段,在畫面上會同時把這個數值標在圖面上,造成畫面觀看不易請教是甚麼原因呢?

向版主報告此篇 | 查IP位址
Old Post 2010-12-13 09:10
yisong 現在離線 點選這裡查看 yisong 的個人資料 點選這裡給 yisong 傳送一條短訊 查找更多關於 yisong 的文章 增加 yisong 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為11:58 發表新主題    回覆主題
總頁數 (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.  聯絡我們