COCO研究院

 找回密碼
 註冊
搜索
查看: 6642|回復: 17

策略的語法請教

[複製鏈接]
發表於 15-6-25 10:47 | 顯示全部樓層 |閱讀模式
各位大大, 我在網上找到一個程式碼, 但很複雜, 求解釋一下他的邏緝

程式碼如下:


{ Public inputs }
Inputs:LuckyNet(0),IntraDay(0), TradeStopLoss(0.031),TradeProfit(0.039) ;
Inputs:TradeInday(1),Time1SW(1),Time1B(945),Time1E(1200) ;
Inputs:Time2SW(0),Time2B(1300),Time2E(1430),Time3SW(0) ;
Inputs:Time3B(900),Time3E(1300),PositionSW(1) ;
inputs:Frac_LMM(1.81),NBar_LM(2),Frac_SMM(5.25),NBar_SM(8) ;

{ Public Variables }
Vars:Cond_LE(false),Cond_SE(false),CondNet_L(false),CondNet_S(false),
UBuy(0),USell(0),BuyStop(0),SellStop(0),BuyStopA(0),SellStopA(0),
NewBuyStopA(0),NewSellStopA(0),PL(0),PS(0),LastTradeDay(false) ;
Vars:TimeOK1(true),TimeOK2(true),TimeOK3(true),PosSW(true) ;

{ BuyMode Setup }
inputs:Bar_L1(36),NBar_LE(7),Frac_LE(0.78) ;

{ SellMode Setup }
inputs:Bar_S1(9),NBar_SE(7),Frac_SE(4.44) ;

{ Exit Long Position Setup }

{ Exit Short Position Setup }
inputs:TRLen_S(4),TRPct_S(91),Ratio_TS(0.77),NBar_SX(99) ;

{ BuyMode Variable Setup }
Vars:LE_ATR(0) ;

{ SellMode Variable Setup }
Vars:SE_ATR(0) ;

{ Exit Long Position Variable Setup }
Vars:LMM_ATR(0) ;

{ Exit Short Position Variable Setup }
Vars:TS_ATR(0),Trigger_TSA(false) ;
Vars:SMM_ATR(0) ;

{ ***** LastTradeDay ***** }
LastTradeDay = _MagicQS268_LTD ;

{ initial profit and loss }
if MarketPosition = 0 then begin
PL = AvgPrice*TradeProfit ;
PS = AvgPrice*TradeStopLoss ;
end ;

{ ATR calculate for code }
LMM_ATR = AvgTrueRange(NBar_LM);
LE_ATR = AvgTrueRange(NBar_LE);
SMM_ATR = AvgTrueRange(NBar_SM);
SE_ATR = AvgTrueRange(NBar_SE);
TS_ATR = AvgTrueRange(TRLen_S);

{ Entry and Exit prices }
UBuy = Highest(Close, Bar_L1) + Frac_LE * LE_ATR ;
USell = Highest(Low, Bar_S1) - Frac_SE * SE_ATR ;

{ Long and Short Entry Condition Setup }
Cond_LE = DayofWeek(Date) <> 7 ;
Cond_SE = MOD(DayofMonth(Date),8) = 3 ;

{ Combine Trade Number in day }
Cond_LE = Cond_LE and EntriesToday(date) <= TradeInDay ;
Cond_SE = Cond_SE and EntriesToday(date) <= TradeInDay ;

{ Combine Trade time zone in day }
if Time1SW = 0 then TimeOK1 = true else TimeOK1 = (time >= Time1B and time <= Time1E) ;

Cond_LE = Cond_LE and TimeOK1 ;
Cond_SE = Cond_SE and TimeOK1 ;

{ Check Position status for entry}
if PositionSW = 0 then PosSW = true else PosSW = (MarketPosition = 0) ;
Cond_LE = Cond_LE and PosSW ;
Cond_SE = Cond_SE and PosSW ;

{ Entry Long orders }
if Cond_LE then Buy next bar at UBuy Stop ;

{ Entry Short orders }
if Cond_SE then SellShort next bar at USell Stop ;

{ Exit orders, long trades }
If MarketPosition > 0 then begin
PL = EntryPrice(0)* TradeProfit;
PS = EntryPrice(0)* TradeStopLoss ;
If BarsSinceEntry = 0 then begin
BuyStop = EntryPrice - Frac_LMM * LMM_ATR;
end;
SetStopLoss(PS * BigPointValue) ;
end;

{ Exit orders, short trades }
If MarketPosition < 0 then begin
PL = EntryPrice(0)* TradeProfit;
PS = EntryPrice(0)* TradeStopLoss ;
If BarsSinceEntry = 0 then begin
SellStop = EntryPrice + Frac_SMM * SMM_ATR;
SellStopA = 0 ;
Trigger_TSA = false;
end;
If EntryPrice - Close > Ratio_TS * TS_ATR then
Trigger_TSA = true;
If Trigger_TSA then begin
NewSellStopA = EntryPrice - TRPct_S * (EntryPrice - Close)/100.;
SellStopA = MinList(SellStopA, NewSellStopA);
end;
if BarsSinceEntry >= NBar_SX then BuytoCover next bar at Market ;
If Trigger_TSA then
BuytoCover next bar at SellStopA stop;
end;

if IntraDay = 0 then SetExitonClose
else if IntraDay = 1 and LastTradeDay then SetExitonClose ;
 樓主| 發表於 15-6-25 10:49 | 顯示全部樓層
[size=15.3999996185303px]這東西不知怎的出現, 原語法沒這東西, 我在帖子編緝也剷不走
發表於 15-6-25 14:55 | 顯示全部樓層
這應該是最佳化過的或是用GA演化出來的策略程式碼~看參數預設值帶有奇妙的小數猜的
發表於 15-6-25 16:20 | 顯示全部樓層
建議尊重一下原作者, 應該附上原始出處連結........

http://wenschair.blogspot.tw/2014/07/blog-post_16.html

評分

參與人數 2金錢 +4 收起 理由
googleandy + 2 按一個讚
swwang1999 + 2 感謝分享

查看全部評分

 樓主| 發表於 15-6-25 18:38 | 顯示全部樓層
沒房子的阿捨 發表於 15-6-25 16:20
建議尊重一下原作者, 應該附上原始出處連結........

http://wenschair.blogspot.tw/2014/07/blog- ...

抱歉, 我附連結的時候, 論壇系統不給我出post

 樓主| 發表於 15-6-25 18:38 | 顯示全部樓層
goodddog 發表於 15-6-25 14:55
這應該是最佳化過的或是用GA演化出來的策略程式碼~看參數預設值帶有奇妙的小數猜的
...

請問他的邏緝是甚麼? GA演化又是甚麼?
發表於 15-6-25 20:27 | 顯示全部樓層
lahahaha 發表於 15-6-25 18:38
請問他的邏緝是甚麼? GA演化又是甚麼?

基因演算法 或 遺傳演算法 : Genetic Algorithm


 樓主| 發表於 15-6-25 23:11 | 顯示全部樓層
goodddog 發表於 15-6-25 20:27
基因演算法 或 遺傳演算法 : Genetic Algorithm

感覺很高端....我們個人交易者能做得到嗎? 用軟件?
發表於 15-6-26 11:33 | 顯示全部樓層
lahahaha 發表於 15-6-25 23:11
感覺很高端....我們個人交易者能做得到嗎? 用軟件?

可以請教開發者
http://easytrader788.blogspot.tw/2013/12/blog-post_24.html
發表於 15-6-26 17:06 | 顯示全部樓層
傳統策略開發的方式通常多空進場邏輯是使用相同的元素 ,而此策略產生的方式是由電腦隨機組合策略元素 ,ex 假設資料庫內有 A~Z 26個可用元素 ,電腦隨機選取的可能是作多使用B 元素 ,作空使用 H元素 ,也可能多空是 K/Y  or Z/A 的組合, 而非傳統的方式 多/空都使用 A 判斷
發表於 15-6-26 17:11 | 顯示全部樓層
進出場的價格也是隨機組合出來的 , 所以只要設定需求的績效目標 , 電腦就自動選取內建元素與進出場價格法則 ,符合設定的績效  ,就輸出程式碼

 樓主| 發表於 15-6-26 19:52 | 顯示全部樓層
easytrader788 發表於 15-6-26 17:11
進出場的價格也是隨機組合出來的 , 所以只要設定需求的績效目標 , 電腦就自動選取內建元素與進出場價格法則 ...

明白, 解答很詳盡清楚, 這個軟件開放下載嗎?
發表於 15-6-26 20:05 | 顯示全部樓層
可以在[就是愛現~程式交易]網站先參考有關策略產生器相關文章
發表於 15-6-26 22:22 | 顯示全部樓層
這是ATR(平均真實區域)突破策略,效果通常不是很好,只能當作練習程式交易使用.
 樓主| 發表於 15-6-26 23:11 | 顯示全部樓層
easytrader788 發表於 15-6-26 20:05
可以在[就是愛現~程式交易]網站先參考有關策略產生器相關文章

感謝easy trader大師, 久聞大名!!!
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-11-25 18:49

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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