![]() |
總頁數 (3): « 1 [2] 3 » 在這個頁面顯示本主題全部的 42 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 每天每15分鐘丟銅板決定買訊的公式,目的做資金管理與風險控制的測試用 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=13896)
真的不行要改寫成迴圈嗎???
沒有更好的方法嗎??
回覆: [請教]這一行要加在甚麼位置???
引用:
最初由 taiwanyang121 發表
買訊:=c*0;
下單口數:=C-C+1 ;
期初資金:=300000;
for i=1 to datacount do begin
買訊:=IF((RAND(2)-1)=1,1,0) ;
i:=i+15; //作用相等於 Step 15
end;
//買進不超過3次
每日開盤:=date<>ref(date,1) or barpos=1;
每日開盤SP:=barslast(每日開盤);
買訊:=買訊 and Sum(買訊,每日開盤SP+1)<=3 ;
買訊SP:=barslast(買訊);
買成本:ref(c,買訊SP) linethick0 colorwhite;
買停利:=買成本+30;
買停損:=買成本-15;
賣訊:=if ( (買停利<high and 買停利>low) or (買停損<high and 買停損>low),1,0);
賣訊SP:=barslast(賣訊);
賣成本:=ref(c,賣訊SP) linethick0 colorwhite;
盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
//此段就已可過濾掉已有持單的買訊
CK:=買訊-賣訊;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
買訊:CK=1 coloryellow;
賣訊:CK=-1 colormagenta;
總交易次數:SUM(賣訊,0) linethick0 coloryellow ;
總交易損益:SUM(盈虧,0) linethick0 coloryellow ;
總盈餘:SUM(IF(盈虧>0,盈虧,0),0) linethick0 coloryellow;
總虧損:SUM(IF(盈虧<=0,盈虧,0),0)linethick0 coloryellow; //為0或負
淨利金額: (總交易損益-總交易次數*2)*200 linethick0 coloryellow;
賺錢次數:=SUM(盈虧>0,0) linethick0 coloryellow ;
勝率:=IF(總交易次數>10, 賺錢次數/總交易次數,0) linethick0 coloryellow;
期望值:=IF(總交易次數>10,(總盈餘/總交易次數)*勝率+(總虧損/總交易次數)*(1-勝率)-2,0) linethick0 coloryellow;
目前可用資金:=IF(總交易次數<>0,期初資金+(總交易損益*200),期初資金) linethick0 coloryellow;
最大虧損:=IF(盈虧<最大虧損,盈虧,最大虧損) linethick0 coloryellow;
===============================
之前的OK
__________________
至誠能勝天下至偽
至拙能勝天下至巧
改好了!!就是有加碼的下單口數那一行要如何加???
買訊:=c*0;期初資金:=1000000;最大虧損:=0;保證金:=80000;
For i=1 to datacount do begin
買訊[i]:=IF((RAND(2)-1)=1,1,0) ;
i:=i+15; //作用相等於 Step 15
end;
//買進不超過3次
每日開盤:=date<>ref(date,1) or barpos=1;
每日開盤SP:=barslast(每日開盤);
買訊:=買訊 and Sum(買訊,每日開盤SP+1)<=3 ;
買訊SP:=barslast(買訊);
買成本:ref(c,買訊SP) linethick0 colorwhite;
買停利:=買成本+30;
買停損:=買成本-15;
賣訊:=if ( (買停利<high and 買停利>low) or (買停損<high and 買停損>low),1,0);
//此段就已可過濾掉已有持單的買訊
CK:=買訊-賣訊;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
買訊:CK=1 coloryellow;
賣訊:CK=-1 colormagenta;
賣訊SP:=barslast(賣訊);
賣成本:=ref(c,賣訊SP) ;
/////想在下一行改為 盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
///可以算出加碼的盈虧
盈虧:if(賣訊,(賣成本-買成本),0) linethick0 coloryellow;
//==========================================================================================================
總交易次數:=SUM(賣訊,0) ;
總交易損益:=SUM(盈虧,0) ;
總盈餘:=SUM(IF(盈虧>0,盈虧,0),0) ;
總虧損:=SUM(IF(盈虧<0, -盈虧,0),0) ; //為0或負
淨利金額:=(總交易損益-總交易次數*2)*200 ;
賺錢次數:=SUM(盈虧>0,0) ;
虧錢次數:=SUM(盈虧<0,0) ;
平均獲利:=總盈餘/賺錢次數;
平均虧損:=總虧損/虧錢次數;
勝率:=IF(總交易次數>10, 賺錢次數/總交易次數,0) ;
期望值:=IF(總交易次數>10,(平均獲利)*勝率-(平均虧損*(1-勝率)),0) ;
目前可用資金:=IF(總交易次數<>0,期初資金+總交易損益*200 ,期初資金);
錢不夠:= IF( 目前可用資金<80000,1,0);
最大虧損:=LLV(盈虧,0);
KELLY:=(((平均獲利/平均虧損)+1)*勝率-1)/(平均獲利/平均虧損); ///////////資金管理模型 - Kelly Formula凱利公式 FK = ((WL + 1) * Pw - 1 ) / WL
下單口數:=ROUND( IF( 總交易次數>10 AND (KELLY*目前可用資金)/保證金>1 ,(KELLY*目前可用資金)/保證金,1) ) ;
要參考後幾行程式中的數列 要如何做????
因為要先有盈虧才能算下單口數
10次交易以前每次下單為一口
又在第10次交易後又要開始參考下單口數下單?????想不出來如寫???
回覆: 改好了!!就是有加碼的下單口數那一行要如何加???
引用:
最初由 taiwanyang121 發表
買訊:=c*0;期初資金:=1000000;最大虧損:=0;保證金:=80000;
For i=1 to datacount do begin
買訊:=IF((RAND(2)-1)=1,1,0) ;
i:=i+15; //作用相等於 Step 15
end;
//買進不超過3次
每日開盤:=date<>ref(date,1) or barpos=1;
每日開盤SP:=barslast(每日開盤);
買訊:=買訊 and Sum(買訊,每日開盤SP+1)<=3 ;
買訊SP:=barslast(買訊);
買成本:ref(c,買訊SP) linethick0 colorwhite;
買停利:=買成本+30;
買停損:=買成本-15;
賣訊:=if ( (買停利<high and 買停利>low) or (買停損<high and 買停損>low),1,0);
//此段就已可過濾掉已有持單的買訊
CK:=買訊-賣訊;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
買訊:CK=1 coloryellow;
賣訊:CK=-1 colormagenta;
賣訊SP:=barslast(賣訊);
賣成本:=ref(c,賣訊SP) ;
/////想在下一行改為 盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
///可以算出加碼的盈虧
盈虧:if(賣訊,(賣成本-買成本),0) linethick0 coloryellow;
//==========================================================================================================
總交易次數:=SUM(賣訊,0) ;
總交易損益:=SUM(盈虧,0) ;
總盈餘:=SUM(IF(盈虧>0,盈虧,0),0) ;
總虧損:=SUM(IF(盈虧<0, -盈虧,0),0) ; //為0或負
淨利金額:=(總交易損益-總交易次數*2)*200 ;
賺錢次數:=SUM(盈虧>0,0) ;
虧錢次數:=SUM(盈虧<0,0) ;
平均獲利:=總盈餘/賺錢次數;
平均虧損:=總虧損/虧錢次數;
勝率:=IF(總交易次數>10, 賺錢次數/總交易次數,0) ;
期望值:=IF(總交易次數>10,(平均獲利)*勝率-(平均虧損*(1-勝率)),0) ;
目前可用資金:=IF(總交易次數<>0,期初資金+總交易損益*200 ,期初資金);
錢不夠:= IF( 目前可用資金<80000,1,0);
最大虧損:=LLV(盈虧,0);
KELLY:=(((平均獲利/平均虧損)+1)*勝率-1)/(平均獲利/平均虧損); ///////////資金管理模型 - Kelly Formula凱利公式 FK = ((WL + 1) * Pw - 1 ) / WL
下單口數:=ROUND( IF( 總交易次數>10 AND (KELLY*目前可用資金)/保證金>1 ,(KELLY*目前可用資金)/保證金,1) ) ;
引用:
[i]最初由 taiwanyang121 發表
因為要先有盈虧才能算下單口數
10次交易以前每次下單為一口
又在第10次交易後又要開始參考下單口數下單?????想不出來如寫???
__________________
至誠能勝天下至偽
至拙能勝天下至巧
請參倉考公式中的那行如何改成加碼的那一行??
/////想在下一行改為 盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
///可以算出加碼的盈虧
盈虧:if(賣訊,(賣成本-買成本),0) linethick0 coloryellow;
//==========================================================================================================
請參倉考公式中的那行如何改成加碼的那一行??他在研加碼在後沒加到??
回覆: 請參倉考公式中的那行如何改成加碼的那一行??
引用:
最初由 taiwanyang121 發表
/////想在下一行改為 盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
///可以算出加碼的盈虧
盈虧:if(賣訊,(賣成本-買成本),0) linethick0 coloryellow;
//==========================================================================================================
請參倉考公式中的那行如何改成加碼的那一行??他在研加碼在後沒加到??
__________________
至誠能勝天下至偽
至拙能勝天下至巧
舉例
一般情形是交易訊號出現時你會決定是試單(空手時) 或有單時的加碼, 不會去算當你空手時若發生試單的情況之前的的勝率與期望值對嗎???
所以當你空手發生交易訊號時你如果你的期望值變為負的表示你每交易一筆很容易虧損你會下單嗎???應該是減碼下試單??這裡指的不是加碼單的情況喔!!!
哪筆單子是 試單或是加碼單
從目前指標中看不出
只看指標內容
您的交易系統要由您決定
不想去猜不同的定義
__________________
至誠能勝天下至偽
至拙能勝天下至巧
問題是盈虧的計算式在你匴好下單口數之前
問題是盈虧的計算式在你匴好下單口數之前
======================================
/////想在下一行改為 盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
///可以算出加碼的盈虧????????
盈虧:if(賣訊,(賣成本-買成本),0) linethick0 coloryellow;
.....
...
....
下單口數A:=ROUND( IF( 總交易次數>10 AND (KELLY*目前可用資金)/保證金>1 ,(KELLY*目前可用資金)/保證金,1) ) ;
下單口數:=IF(總交易次數<10 OR 下單口數A<2,1,下單口數A);
目前此公式都只有試單
所以都要參考下單口數
如果將後面一段搬到盈虧之前又會出現""盈虧未定義"
買訊:CK=1 coloryellow;
賣訊:CK=-1 colormagenta;
賣訊SP:=barslast(賣訊);
賣成本:=ref(c,賣訊SP) ;
//=======================================================
總交易次數:=SUM(賣訊,0) ;
總交易損益:=SUM(盈虧,0) ;
總盈餘:=SUM(IF(盈虧>0,盈虧,0),0) ;
總虧損:=SUM(IF(盈虧<0, -盈虧,0),0) ; //為0或負
淨利金額:=(總交易損益-總交易次數*2)*200 ;
賺錢次數:=SUM(盈虧>0,0) ;
虧錢次數:=SUM(盈虧<0,0) ;
平均獲利:=總盈餘/賺錢次數;
平均虧損:=總虧損/虧錢次數;
勝率:=IF(總交易次數>10, 賺錢次數/總交易次數,0) ;
期望值:=IF(總交易次數>10,(平均獲利)*勝率-(平均虧損*(1-勝率)),0) ;
目前可用資金:=IF(總交易次數<>0,期初資金+總交易損益*200 ,期初資金);
錢不夠:= IF( 目前可用資金<80000,1,0);
最大虧損:=LLV(盈虧,0);
KELLY:=(((平均獲利/平均虧損)+1)*勝率-1)/(平均獲利/平均虧損); //資金管理模型 - Kelly Formula凱利公式 FK = ((WL + 1) * Pw - 1 ) / WL
下單口數A:=ROUND( IF( 總交易次數>10 AND (KELLY*目前可用資金)/保證金>1 ,(KELLY*目前可用資金)/保證金,1) ) ;
下單口數:=IF(總交易次數<10 OR 下單口數A<2,1,下單口數A);
/////想在下一行改為 盈虧:if(賣訊,(賣成本-買成本)*下單口數,0) linethick0 coloryellow;
///可以算出加碼的盈虧????????
盈虧:if(賣訊,(賣成本-買成本)*下單口數,0) linethick0 coloryellow;
//==============================================================
如果改成迴圈
For I=1 to Datacount do begin
If 在倉口數=0 and 多空=0 then begin //如果空手且觀望時出現訊號時計算調整風控與資金
For j=1 to i do begin
總交易次數[i]:if (賣訊[j]<>0,總交易次數[i]+1,總交易次數[i]) linethick0 coloryellow ;
總賺錢次數[i]:if (盈虧[j]>0,賺錢次數[i]+1,賺錢次數[i]) linethick0 coloryellow ;
總虧錢次數[i]:總交易次數[i]-總賺錢次數[i];
總盈餘[i]:if(盈虧[j]>0,總盈餘[i]+盈虧[j],總盈餘[i]) linethick0 coloryellow;
總虧損[i]:if(盈虧[j]<0,總虧損[i]+盈虧[j],總虧損[i])linethick0 coloryellow; //為負
總交易損益[i]:總盈餘[i]+總虧損[i] linethick0 coloryellow ;
end;
...
..
..
會很麻煩
回覆: 問題是盈虧的計算式在你匴好下單口數之前
引用:
最初由 taiwanyang121 發表
目前此公式都只有試單
問題是盈虧的計算式在你匴好下單口數之前
======================================
/////想在下一行改為 盈虧:=IF(下單口數>1,if(賣訊,(賣成本-買成本)*下單口數,0) ,if(賣訊,(賣成本-買成本),0) ) linethick0 coloryellow;
///可以算出加碼的盈虧????????
盈虧:if(賣訊,(賣成本-買成本),0) linethick0 coloryellow;
.....
...
....
下單口數A:=ROUND( IF( 總交易次數>10 AND (KELLY*目前可用資金)/保證金>1 ,(KELLY*目前可用資金)/保證金,1) ) ;
下單口數:=IF(總交易次數<10 OR 下單口數A<2,1,下單口數A);
所以都要參考下單口數
引用:
最初由 taiwanyang121 發表
買訊:CK=1 coloryellow;
賣訊:CK=-1 colormagenta;
賣訊SP:=barslast(賣訊);
賣成本:=ref(c,賣訊SP) ;
//=======================================================
總交易次數:=SUM(賣訊,0) ;
總交易損益:=SUM(盈虧,0) ;
總盈餘:=SUM(IF(盈虧>0,盈虧,0),0) ;
總虧損:=SUM(IF(盈虧<0, -盈虧,0),0) ; //為0或負
淨利金額:=(總交易損益-總交易次數*2)*200 ;
賺錢次數:=SUM(盈虧>0,0) ;
虧錢次數:=SUM(盈虧<0,0) ;
平均獲利:=總盈餘/賺錢次數;
平均虧損:=總虧損/虧錢次數;
勝率:=IF(總交易次數>10, 賺錢次數/總交易次數,0) ;
期望值:=IF(總交易次數>10,(平均獲利)*勝率-(平均虧損*(1-勝率)),0) ;
目前可用資金:=IF(總交易次數<>0,期初資金+總交易損益*200 ,期初資金);
錢不夠:= IF( 目前可用資金<80000,1,0);
最大虧損:=LLV(盈虧,0);
KELLY:=(((平均獲利/平均虧損)+1)*勝率-1)/(平均獲利/平均虧損); //資金管理模型 - Kelly Formula凱利公式 FK = ((WL + 1) * Pw - 1 ) / WL
下單口數A:=ROUND( IF( 總交易次數>10 AND (KELLY*目前可用資金)/保證金>1 ,(KELLY*目前可用資金)/保證金,1) ) ;
下單口數:=IF(總交易次數<10 OR 下單口數A<2,1,下單口數A);
/////想在下一行改為 盈虧:if(賣訊,(賣成本-買成本)*下單口數,0) linethick0 coloryellow;
///可以算出加碼的盈虧????????
盈虧:if(賣訊,(賣成本-買成本)*下單口數,0) linethick0 coloryellow;
//==============================================================
引用:
最初由 taiwanyang121 發表
For I=1 to Datacount do begin
If 在倉口數=0 and 多空=0 then begin //如果空手且觀望時出現訊號時計算調整風控與資金
For j=1 to i do begin
總交易次數[i]:if (賣訊[j]<>0,總交易次數[i]+1,總交易次數[i]) linethick0 coloryellow ;
總賺錢次數[i]:if (盈虧[j]>0,賺錢次數[i]+1,賺錢次數[i]) linethick0 coloryellow ;
總虧錢次數[i]:總交易次數[i]-總賺錢次數[i];
總盈餘[i]:if(盈虧[j]>0,總盈餘[i]+盈虧[j],總盈餘[i]) linethick0 coloryellow;
總虧損[i]:if(盈虧[j]<0,總虧損[i]+盈虧[j],總虧損[i])linethick0 coloryellow; //為負
總交易損益[i]:總盈餘[i]+總虧損[i] linethick0 coloryellow ;
end;
...
..
..
會很麻煩
__________________
至誠能勝天下至偽
至拙能勝天下至巧
誰有控可以將最近的元碼改成如下???
如果BBI=EMA 5,10,25,50 這四條均線的均價 ,
當EMA200 均線 小於 BBI 則 隨機指下多單
若大於 BBI 指下空單 其他條件相同
全部時間均為台灣時間, 現在時間為07:09 | 總頁數 (3): « 1 [2] 3 » 在這個頁面顯示本主題全部的 42 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.