到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > [問題] 如何求算條件成立的價位、區間統計、倉位計算
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
tycoon868
資深會員

註冊日期: Oct 2008
來  自:
文章數量: 313

[問題] 如何求算條件成立的價位、區間統計、倉位計算

求教 總版主以下需求:

使用週期: 六十分K
使用商品: 台當月+

半成品主圖原始碼如下:
______________________________________________________________________________________

MQ:=MA(C,10),linethick0,colorff00ff,precision2;
M3:=MA(C,90),linethick0,colorblue,precision2;

MBP90:=MQ-M3,linethick0,precision1;
ABP90:=MA(MBP90,45),precision1;

Partline(1,M3),colorff3300,LINETHICK5;

StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff;

StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;

StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;

MBAD:=MBP90-ABP90,linethick0,color009999,precision1;

BullB:=MBP90>=0 and MBAD>=0; BullBSP:=barslast(BullB);
BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);

BearS:=MBP90<0 and MBAD<0; BearSSP:=barslast(BearS);
BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1;
Bearhold:=barslast(BearS=0);

週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期

多買1:=Cross(MBP90,0); //成立則倉位+2
多買2:=週期>0 and Cross(MBP90,50) and MBAD>0;//成立則倉位+2
多買3:=週期>0 and Cross(MBP90,100) and MBAD>0;//成立則倉位+2
多買4:=週期>0 and Cross(MBP90,150) and MBAD>0;//成立則倉位+2
多買5:=週期>0 and Cross(MBP90,200) and MBAD>0;//成立則倉位+2
多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0)
or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0);//成立則倉位+1
多買7:=Cross(MBP90,ABP90) and 週期>0;//成立則倉位+2

多平1:=Cross(ABP90,MBP90);//成立則倉位 -2
多平2:=Cross(200,MBP90)and MBAD<0;//成立則倉位 -2
多平3:=Cross(150,MBP90)and MBAD<0;//成立則倉位 -2
多平4:=Cross(100,MBP90)and MBAD<0;//成立則倉位 -2
多平5:=Cross(50,MBP90)and MBAD<0;//成立則倉位 -2
多平6:=週期<1 and ref(週期,1)>=1;//成立則將本週期剩餘的倉位 歸零

最長週期:HHV(週期,1000); //希望這個1000可以成為一個變數
______________________________________________________________________________________________

需求一 週期=1 當下取得該筆六十分K的 日期與時間,輸出到主圖解盤區

需求二 如何取得 多買1:=Cross(MBP90,0); 條件成立當下確切的台期指價位,當成該筆單買進成本

需求三 在一個完整的操作週期中(詳見上方週期註解),設限 多買1~7條件成立累加倉位(最大上限為 倉位=10),同時併行 多平1~6作倉位減碼 (最多減碼到 倉位=0),這兩組條件在行情進行過程中(同一完整操作週期),求出一個新指標 命名為 [倉位],希望求取任何一根K棒當下正確的 倉位數值

需求四 最長週期:HHV(週期,1000); 希望可以建立一個指標取代1000,假設將該指標名稱為 Period,允許使用者自由拖拉日期區間,以及藉由 上下方向箭進行畫面數據的縮放(經測試奇狐最高支援縮放達到數據量13000多筆),該 Period 可以運算此一龐大數據並求出 HHV(週期,Period)

定義: Period= User 端操作下呈現出的當下主圖畫面K棒數量,起點(螢幕最左方那一筆),迄點(螢幕最右方那一筆K棒),計算方式為不啟用游標

此一目的是為了作任一區間的各項指標統計

需求五 承需求四,可以將當下 Period 所計算的起迄點 日期時間輸出到解盤區,希望輸出三種格式

1 回測起點: 年月日時間

2. 回測終點: 年月日時間

3. 回測數據量: N 筆

************************************************************************

麻煩總版主直接將原碼給我,讓我從這當中邊做邊學,感謝!

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

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

回覆: [問題] 如何求算條件成立的價位、區間統計、倉位計算

引用:
最初由 tycoon868 發表
求教 總版主以下需求:

使用週期: 六十分K
使用商品: 台當月+

半成品主圖原始碼如下:
______________________________________________________________________________________

MQ:=MA(C,10),linethick0,colorff00ff,precision2;
M3:=MA(C,90),linethick0,colorblue,precision2;

MBP90:=MQ-M3,linethick0,precision1;
ABP90:=MA(MBP90,45),precision1;

Partline(1,M3),colorff3300,LINETHICK5;

StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff;

StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;

StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;

MBAD:=MBP90-ABP90,linethick0,color009999,precision1;

BullB:=MBP90>=0 and MBAD>=0; BullBSP:=barslast(BullB);
BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);

BearS:=MBP90<0 and MBAD<0; BearSSP:=barslast(BearS);
BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1;
Bearhold:=barslast(BearS=0);

週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期

多買1:=Cross(MBP90,0); //成立則倉位+2
多買2:=週期>0 and Cross(MBP90,50) and MBAD>0;//成立則倉位+2
多買3:=週期>0 and Cross(MBP90,100) and MBAD>0;//成立則倉位+2
多買4:=週期>0 and Cross(MBP90,150) and MBAD>0;//成立則倉位+2
多買5:=週期>0 and Cross(MBP90,200) and MBAD>0;//成立則倉位+2
多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0)
or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0);//成立則倉位+1
多買7:=Cross(MBP90,ABP90) and 週期>0;//成立則倉位+2

多平1:=Cross(ABP90,MBP90);//成立則倉位 -2
多平2:=Cross(200,MBP90)and MBAD<0;//成立則倉位 -2
多平3:=Cross(150,MBP90)and MBAD<0;//成立則倉位 -2
多平4:=Cross(100,MBP90)and MBAD<0;//成立則倉位 -2
多平5:=Cross(50,MBP90)and MBAD<0;//成立則倉位 -2
多平6:=週期<1 and ref(週期,1)>=1;//成立則將本週期剩餘的倉位 歸零

最長週期:HHV(週期,1000); //希望這個1000可以成為一個變數
______________________________________________________________________________________________

需求一 週期=1 當下取得該筆六十分K的 日期與時間,輸出到主圖解盤區

需求二 如何取得 多買1:=Cross(MBP90,0); 條件成立當下確切的台期指價位,當成該筆單買進成本

需求三 在一個完整的操作週期中(詳見上方週期註解),設限 多買1~7條件成立累加倉位(最大上限為 倉位=10),同時併行 多平1~6作倉位減碼 (最多減碼到 倉位=0),這兩組條件在行情進行過程中(同一完整操作週期),求出一個新指標 命名為 [倉位],希望求取任何一根K棒當下正確的 倉位數值

需求四 最長週期:HHV(週期,1000); 希望可以建立一個指標取代1000,假設將該指標名稱為 Period,允許使用者自由拖拉日期區間,以及藉由 上下方向箭進行畫面數據的縮放(經測試奇狐最高支援縮放達到數據量13000多筆),該 Period 可以運算此一龐大數據並求出 HHV(週期,Period)

定義: Period= User 端操作下呈現出的當下主圖畫面K棒數量,起點(螢幕最左方那一筆),迄點(螢幕最右方那一筆K棒),計算方式為不啟用游標

此一目的是為了作任一區間的各項指標統計

需求五 承需求四,可以將當下 Period 所計算的起迄點 日期時間輸出到解盤區,希望輸出三種格式

1 回測起點: 年月日時間

2. 回測終點: 年月日時間

3. 回測數據量: N 筆

************************************************************************

麻煩總版主直接將原碼給我,讓我從這當中邊做邊學,感謝!



先確認一下~~
您是只要統計當前螢幕區間的範圍的績效對吧?
以螢幕區間內首個多買n成立,當首個進場位置
如此一來,當螢幕區間不同,同時間K棒之倉位就會隨之不同唷! (因為進場起點發生變化)

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

註冊日期: Oct 2008
來  自:
文章數量: 313

我是想要用《周期》視為一個完整的操作波數周期,作各種統計回測,包含勝率、獲利率、失敗率⋯⋯等等

方向鍵螢幕縮小/放大K棒時,調整運算筆數與區間是我期望的目的

我會利用《周期》將各項計算限制在同一操作周期內⋯⋯並不會因為該螢幕數據量增加而影響績效算法

我刻意提問 《最長周期》這個簡單的作法,是希望先學會如何增減數據作試算,等這個功能作好後,我自己會優化邏輯上的問題。

麻煩您先幫我上列這五個製作需求

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

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

引用:
最初由 tycoon868 發表
我是想要用《周期》視為一個完整的操作波數周期,作各種統計回測,包含勝率、獲利率、失敗率⋯⋯等等

方向鍵螢幕縮小/放大K棒時,調整運算筆數與區間是我期望的目的

我會利用《周期》將各項計算限制在同一操作周期內⋯⋯並不會因為該螢幕數據量增加而影響績效算法

我刻意提問 《最長周期》這個簡單的作法,是希望先學會如何增減數據作試算,等這個功能作好後,我自己會優化邏輯上的問題。

麻煩您先幫我上列這五個製作需求



有些地方 "多買1" 成立時 "週期"=0
這情況發生時,忽略 "多買1" 嗎?
只做多?

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

註冊日期: Oct 2008
來  自:
文章數量: 313

謝謝總版主貼心檢視,已經小幅優化原碼如下:
修改部分: BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0);

多買1:=週期=1;

__________________________________________
MQ:=MA(C,10),linethick0,colorff00ff,precision2;
M3:=MA(C,90),linethick0,colorblue,precision2;

MBP90:=MQ-M3,linethick0,precision1;
ABP90:=MA(MBP90,45),precision1;

Partline(1,M3),colorff3300,LINETHICK5;

StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff;

StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;

StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;

MBAD:=MBP90-ABP90,linethick0,color009999,precision1;

BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0); BullBSP:=barslast(BullB);
BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);

BearS:=(MBP90<0and MBAD>0and ABP90<0)or(MBP90<0and MBAD<0and ABP90>0); BearSSP:=barslast(BearS);
BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1;
Bearhold:=barslast(BearS=0);

週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期

多買1:=週期=1; //成立則倉位+2
多買2:=週期>0 and Cross(MBP90,50) and MBAD>0;//成立則倉位+2
多買3:=週期>0 and Cross(MBP90,100) and MBAD>0;//成立則倉位+2
多買4:=週期>0 and Cross(MBP90,150) and MBAD>0;//成立則倉位+2
多買5:=週期>0 and Cross(MBP90,200) and MBAD>0;//成立則倉位+2
多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0)
or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0);//成立則倉位+1
多買7:=Cross(MBP90,ABP90) and 週期>0;//成立則倉位+2

多平1:=Cross(ABP90,MBP90);//成立則倉位 -2
多平2:=Cross(200,MBP90)and MBAD<0;//成立則倉位 -2
多平3:=Cross(150,MBP90)and MBAD<0;//成立則倉位 -2
多平4:=Cross(100,MBP90)and MBAD<0;//成立則倉位 -2
多平5:=Cross(50,MBP90)and MBAD<0;//成立則倉位 -2
多平6:=週期<1 and ref(週期,1)>=1;//成立則將本週期剩餘的倉位 歸零

最長週期:HHV(週期,1000); //希望這個1000可以成為一個變數
________________________________________

Q: 是否只作多?
A: 這套交易策略後續一定還需要版主協助,我採用的是逐步階段完成方式,需要先學會這五個奇狐技巧,然後我才能繼續下一個階段

為了向版主提問以及教學,我有盡量讓原碼單純化,所以作空的部分先省略(後續才補上)

感謝~

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

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

引用:
最初由 tycoon868 發表
謝謝總版主貼心檢視,已經小幅優化原碼如下:
修改部分: BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0);

多買1:=週期=1;

__________________________________________
MQ:=MA(C,10),linethick0,colorff00ff,precision2;
M3:=MA(C,90),linethick0,colorblue,precision2;

MBP90:=MQ-M3,linethick0,precision1;
ABP90:=MA(MBP90,45),precision1;

Partline(1,M3),colorff3300,LINETHICK5;

StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff;

StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;

StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;

MBAD:=MBP90-ABP90,linethick0,color009999,precision1;

BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0); BullBSP:=barslast(BullB);
BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);

BearS:=(MBP90<0and MBAD>0and ABP90<0)or(MBP90<0and MBAD<0and ABP90>0); BearSSP:=barslast(BearS);
BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1;
Bearhold:=barslast(BearS=0);

週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期

多買1:=週期=1; //成立則倉位+2
多買2:=週期>0 and Cross(MBP90,50) and MBAD>0;//成立則倉位+2
多買3:=週期>0 and Cross(MBP90,100) and MBAD>0;//成立則倉位+2
多買4:=週期>0 and Cross(MBP90,150) and MBAD>0;//成立則倉位+2
多買5:=週期>0 and Cross(MBP90,200) and MBAD>0;//成立則倉位+2
多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0)
or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0);//成立則倉位+1
多買7:=Cross(MBP90,ABP90) and 週期>0;//成立則倉位+2

多平1:=Cross(ABP90,MBP90);//成立則倉位 -2
多平2:=Cross(200,MBP90)and MBAD<0;//成立則倉位 -2
多平3:=Cross(150,MBP90)and MBAD<0;//成立則倉位 -2
多平4:=Cross(100,MBP90)and MBAD<0;//成立則倉位 -2
多平5:=Cross(50,MBP90)and MBAD<0;//成立則倉位 -2
多平6:=週期<1 and ref(週期,1)>=1;//成立則將本週期剩餘的倉位 歸零

最長週期:HHV(週期,1000); //希望這個1000可以成為一個變數
________________________________________

Q: 是否只作多?
A: 這套交易策略後續一定還需要版主協助,我採用的是逐步階段完成方式,需要先學會這五個奇狐技巧,然後我才能繼續下一個階段

為了向版主提問以及教學,我有盡量讓原碼單純化,所以作空的部分先省略(後續才補上)

感謝~



請把空方也一塊放上,單邊和雙邊交易處理架構上是不太一樣的

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

註冊日期: Oct 2008
來  自:
文章數量: 313

總版主早安,已經將 空方策略補上了,麻煩您.................希望利用周休假日 學會這五個技巧

MQ:=MA(C,10),linethick0,colorff00ff,precision2;
M3:=MA(C,90),linethick0,colorblue,precision2;

MBP90:=MQ-M3,linethick0,precision1;
ABP90:=MA(MBP90,45),precision1;

Partline(1,M3),colorff3300,LINETHICK5;

StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff;

StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;

StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;

MBAD:=MBP90-ABP90,linethick0,color009999,precision1;

BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0); BullBSP:=barslast(BullB);
BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);

BearS:=(MBP90<0and MBAD>0and ABP90<0)or(MBP90<0and MBAD<0and ABP90>0); BearSSP:=barslast(BearS);
BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1;
Bearhold:=barslast(BearS=0);

週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期

多買1:=週期=1; //成立則倉位+2
多買2:=週期>0 and Cross(MBP90,50) and MBAD>0;//成立則倉位+2
多買3:=週期>0 and Cross(MBP90,100) and MBAD>0;//成立則倉位+2
多買4:=週期>0 and Cross(MBP90,150) and MBAD>0;//成立則倉位+2
多買5:=週期>0 and Cross(MBP90,200) and MBAD>0;//成立則倉位+2
多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0)
or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0);//成立則倉位+1
多買7:=Cross(MBP90,ABP90) and 週期>0;//成立則倉位+2

多平1:=Cross(ABP90,MBP90);//成立則倉位 -2
多平2:=Cross(200,MBP90)and MBAD<0;//成立則倉位 -2
多平3:=Cross(150,MBP90)and MBAD<0;//成立則倉位 -2
多平4:=Cross(100,MBP90)and MBAD<0;//成立則倉位 -2
多平5:=Cross(50,MBP90)and MBAD<0;//成立則倉位 -2
多平6:=週期<1 and ref(週期,1)>=1;//成立則將本週期剩餘的倉位 歸零(例如前一個倉位4 則將四筆多倉全部平倉)

空賣1:=週期=-1; //成立則倉位-2
空賣2:=週期<0 and Cross(-50,MBP90) and MBAD<0;//成立則倉位-2
空賣3:=週期<0 and Cross(-100,MBP90) and MBAD<0;//成立則倉位-2
空賣4:=週期<0 and Cross(-150,MBP90) and MBAD<0;//成立則倉位-2
空賣5:=週期<0 and Cross(-200,MBP90) and MBAD<0;//成立則倉位-2
空賣6:=(Cross(-50,MBP90) and MBAD>0and ABP90<0) or (Cross(-100,MBP90) and MBAD>0and ABP90<0)
or (Cross(-150,MBP90) and MBAD>0and ABP90<0) or (Cross(-200,MBP90) and MBAD>0and ABP90<0);//成立則倉位-1
空賣7:=Cross(ABP90,MBP90) and 週期<0;//成立則倉位-2

空補1:=Cross(MBP90,ABP90);//成立則倉位 +2
空補2:=Cross(MBP90,-50)and MBAD<0;//成立則倉位 +2
空補3:=Cross(MBP90,-100)and MBAD<0;//成立則倉位 +2
空補4:=Cross(MBP90,-150)and MBAD<0;//成立則倉位 +2
空補5:=Cross(MBP90,-200)and MBAD<0;//成立則倉位 +2
空補6:=週期>-1 and ref(週期,1)>=-1;//成立則將本週期剩餘的倉位 歸零(例如前一個倉位-3 則將三筆空倉作回補)

最長週期:HHV(週期,1000); //希望這個1000可以成為一個變數

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

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

引用:
最初由 tycoon868 發表
總版主早安,已經將 空方策略補上了,麻煩您.................希望利用周休假日 學會這五個技巧

MQ:=MA(C,10),linethick0,colorff00ff,precision2;
M3:=MA(C,90),linethick0,colorblue,precision2;

MBP90:=MQ-M3,linethick0,precision1;
ABP90:=MA(MBP90,45),precision1;

Partline(1,M3),colorff3300,LINETHICK5;

StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ;
StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff;

StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ;
StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ;

StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ;
StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33;

MBAD:=MBP90-ABP90,linethick0,color009999,precision1;

BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0); BullBSP:=barslast(BullB);
BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1;
Bullhold:=barslast(BullB=0);

BearS:=(MBP90<0and MBAD>0and ABP90<0)or(MBP90<0and MBAD<0and ABP90>0); BearSSP:=barslast(BearS);
BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1;
Bearhold:=barslast(BearS=0);

週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期

多買1:=週期=1; //成立則倉位+2
多買2:=週期>0 and Cross(MBP90,50) and MBAD>0;//成立則倉位+2
多買3:=週期>0 and Cross(MBP90,100) and MBAD>0;//成立則倉位+2
多買4:=週期>0 and Cross(MBP90,150) and MBAD>0;//成立則倉位+2
多買5:=週期>0 and Cross(MBP90,200) and MBAD>0;//成立則倉位+2
多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0)
or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0);//成立則倉位+1
多買7:=Cross(MBP90,ABP90) and 週期>0;//成立則倉位+2

多平1:=Cross(ABP90,MBP90);//成立則倉位 -2
多平2:=Cross(200,MBP90)and MBAD<0;//成立則倉位 -2
多平3:=Cross(150,MBP90)and MBAD<0;//成立則倉位 -2
多平4:=Cross(100,MBP90)and MBAD<0;//成立則倉位 -2
多平5:=Cross(50,MBP90)and MBAD<0;//成立則倉位 -2
多平6:=週期<1 and ref(週期,1)>=1;//成立則將本週期剩餘的倉位 歸零(例如前一個倉位4 則將四筆多倉全部平倉)

空賣1:=週期=-1; //成立則倉位-2
空賣2:=週期<0 and Cross(-50,MBP90) and MBAD<0;//成立則倉位-2
空賣3:=週期<0 and Cross(-100,MBP90) and MBAD<0;//成立則倉位-2
空賣4:=週期<0 and Cross(-150,MBP90) and MBAD<0;//成立則倉位-2
空賣5:=週期<0 and Cross(-200,MBP90) and MBAD<0;//成立則倉位-2
空賣6:=(Cross(-50,MBP90) and MBAD>0and ABP90<0) or (Cross(-100,MBP90) and MBAD>0and ABP90<0)
or (Cross(-150,MBP90) and MBAD>0and ABP90<0) or (Cross(-200,MBP90) and MBAD>0and ABP90<0);//成立則倉位-1
空賣7:=Cross(ABP90,MBP90) and 週期<0;//成立則倉位-2

空補1:=Cross(MBP90,ABP90);//成立則倉位 +2
空補2:=Cross(MBP90,-50)and MBAD<0;//成立則倉位 +2
空補3:=Cross(MBP90,-100)and MBAD<0;//成立則倉位 +2
空補4:=Cross(MBP90,-150)and MBAD<0;//成立則倉位 +2
空補5:=Cross(MBP90,-200)and MBAD<0;//成立則倉位 +2
空補6:=週期>-1 and ref(週期,1)>=-1;//成立則將本週期剩餘的倉位 歸零(例如前一個倉位-3 則將三筆空倉作回補)

最長週期:HHV(週期,1000); //希望這個1000可以成為一個變數



如果同時有兩組 多買n 成立,是 +4 嗎? 還是+2

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

註冊日期: Oct 2008
來  自:
文章數量: 313

+4 哦 !

根據多買條件疊加倉位,直到滿倉10為止

多空雙向都採用這個規則

感謝版大

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

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

引用:
最初由 tycoon868 發表
+4 哦 !

根據多買條件疊加倉位,直到滿倉10為止

多空雙向都採用這個規則

感謝版大



試試吧,看看是否符合想法
原碼:
MQ:=MA(C,10),linethick0,colorff00ff,precision2; M3:=MA(C,90),linethick0,colorblue,precision2; MBP90:=MQ-M3,linethick0,precision1; ABP90:=MA(MBP90,45),precision1; Partline(1,M3),colorff3300,LINETHICK5; { StickLine( O<C , HIGH , LOW , 0.2 , 0 ) , Color3300ff ; StickLine( O<C , CLOSE , OPEN , 8 , 0 ) , Color3300ff; StickLine( O=C , HIGH , LOW , 0.2 , 0 ) , Coloryellow ; StickLine( O=C , CLOSE , OPEN , 8 , 0 ) , Coloryellow ; StickLine( O>C , HIGH , LOW , 0.2 , 0 ) , Colorffcc33 ; StickLine( O>C , CLOSE , OPEN , 8 , 0 ) , Colorffcc33; } MBAD:=MBP90-ABP90,linethick0,color009999,precision1; BullB:=(MBP90>0and MBAD>0and ABP90<0)or(MBP90>0and MBAD<0and ABP90>0); BullBSP:=barslast(BullB); BullB:=Sum(MBP90>0 ,BullBSP+1)=BullBSP+1; Bullhold:=barslast(BullB=0); BearS:=(MBP90<0and MBAD>0and ABP90<0)or(MBP90<0and MBAD<0and ABP90>0); BearSSP:=barslast(BearS); BearS:=Sum(MBP90<0,BearSSP+1)=BearSSP+1; Bearhold:=barslast(BearS=0); 週期:Bullhold-Bearhold,color006699,precision0,linethick0;//週期從1開始,直到成為0或-1,視為一個完整的倉位計算週期 多買1:=週期=1 or barpos=0; //成立則倉位+2 多買2:=週期>0 and Cross(MBP90,50) and MBAD>0 or barpos=0;//成立則倉位+2 多買3:=週期>0 and Cross(MBP90,100) and MBAD>0 or barpos=0;//成立則倉位+2 多買4:=週期>0 and Cross(MBP90,150) and MBAD>0 or barpos=0;//成立則倉位+2 多買5:=週期>0 and Cross(MBP90,200) and MBAD>0 or barpos=0;//成立則倉位+2 多買6:=(Cross(MBP90,50) and MBAD<0and ABP90>0) or (Cross(MBP90,100) and MBAD<0and ABP90>0) or (Cross(MBP90,150) and MBAD<0and ABP90>0) or (Cross(MBP90,200) and MBAD<0and ABP90>0) or barpos=0;//成立則倉位+1 多買7:=Cross(MBP90,ABP90) and 週期>0 or barpos=0;//成立則倉位+2 多平1:=Cross(ABP90,MBP90) or barpos=0;//成立則倉位 -2 多平2:=Cross(200,MBP90)and MBAD<0 or barpos=0;//成立則倉位 -2 多平3:=Cross(150,MBP90)and MBAD<0 or barpos=0;//成立則倉位 -2 多平4:=Cross(100,MBP90)and MBAD<0 or barpos=0;//成立則倉位 -2 多平5:=Cross(50,MBP90)and MBAD<0 or barpos=0;//成立則倉位 -2 多平6:=週期<1 and ref(週期,1)>=1 or barpos=0;//成立則將本週期剩餘的倉位 歸零(例如前一個倉位4 則將四筆多倉全部平倉) 空賣1:=週期=-1; //成立則倉位-2 空賣2:=週期<0 and Cross(-50,MBP90) and MBAD<0 or barpos=0;//成立則倉位-2 空賣3:=週期<0 and Cross(-100,MBP90) and MBAD<0 or barpos=0;//成立則倉位-2 空賣4:=週期<0 and Cross(-150,MBP90) and MBAD<0 or barpos=0;//成立則倉位-2 空賣5:=週期<0 and Cross(-200,MBP90) and MBAD<0 or barpos=0;//成立則倉位-2 空賣6:=(Cross(-50,MBP90) and MBAD>0and ABP90<0) or (Cross(-100,MBP90) and MBAD>0and ABP90<0) or (Cross(-150,MBP90) and MBAD>0and ABP90<0) or (Cross(-200,MBP90) and MBAD>0and ABP90<0) or barpos=0;//成立則倉位-1 空賣7:=Cross(ABP90,MBP90) and 週期<0 or barpos=0;//成立則倉位-2 空補1:=Cross(MBP90,ABP90) or barpos=0;//成立則倉位 +2 空補2:=Cross(MBP90,-50)and MBAD<0 or barpos=0;//成立則倉位 +2 空補3:=Cross(MBP90,-100)and MBAD<0 or barpos=0;//成立則倉位 +2 空補4:=Cross(MBP90,-150)and MBAD<0 or barpos=0;//成立則倉位 +2 空補5:=Cross(MBP90,-200)and MBAD<0 or barpos=0;//成立則倉位 +2 空補6:=週期>-1 and ref(週期,1)>=-1 or barpos=0;//成立則將本週期剩餘的倉位 歸零(例如前一個倉位-3 則將三筆空倉作回補) Max倉位:=10; Dir:=SGN(週期); DirLB:=lbound(Dir); StK:=SYSPARAM(2); EdK:=SYSPARAM(3); StDE:=DATE;StDE:=StDE[StK]; StDE:=numtostr(floor(StDE/10000+1900),0)+numtostr(mod(StDE,10000),0); StTM:=TIME;StTM:=strright('0000'+numtostr(StTM[StK]/100,0),4); EXPLAIN(1,'回測起點: '+StDE+' '+StTM); EdDE:=DATE;EdDE:=EdDE[EdK]; EdDE:=numtostr(floor(EdDE/10000+1900),0)+numtostr(mod(EDDE,10000),0); EdTM:=TIME;EdTM:=strright('0000'+numtostr(EdTM[EdK]/100,0),4); EXPLAIN(1,'回測終點: '+EdDE+' '+EdTM); EXPLAIN(1,'回測K數: '+numtostr(EdK-StK+1,0)); if DirLB>EdK then exit; //不需計算 多買:=(多買1+多買2+多買3+多買4+多買5+多買6+多買7)*(週期>0); 多平:=(多平1+多平2+多平3+多平4+多平5)*(週期>0); 空賣:=(空賣1+空賣2+空賣3+空賣4+空賣5+空賣6+空賣7)*(週期<0); 空補:=(空補1+空補2+空補3+空補4+空補5)*(週期<0); SWFK:=Dir<>ref(Dir,1) or barpos=lbound(Dir) or (barpos=StK and StK>=lbound(Dir)) or barpos=0; CC:=C; DoStK:=StK; if DirLB>StK then DoStK:=DirLB; 倉位:Dir*0 NOAXIS; 盈虧:Dir*0 linethick; for i=DoStK to EdK do begin if SWFK[i] then begin Now倉位:=0; Now成本:=0; end; 倉位[i]:=Now倉位+多買[i]*2-多平[i]*2-空賣[i]*2+空補[i]*2; if ABS(倉位[i])>10 then 倉位[i]:=SGN(倉位[i])*10; if Dir[i]=-SGN(倉位[i]) then 倉位[i]:=0; Now成本:=(倉位[i]-Now倉位)*CC[i]+Now成本; 盈虧[i]:=倉位[i]*CC[i]-Now成本; Now倉位:=倉位[i]; end;

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

註冊日期: Oct 2008
來  自:
文章數量: 313

感謝版主,我假日好好研究測試,下週回報結果

向版主報告此篇 | 查IP位址
Old Post 2022-12-02 17:17
tycoon868 現在離線 點選這裡查看 tycoon868 的個人資料 點選這裡給 tycoon868 傳送一條短訊 查找更多關於 tycoon868 的文章 增加 tycoon868 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為04:10 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
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.  聯絡我們