看板 ForeignEX 關於我們 聯絡資訊
※ [本文轉錄自 Trading 看板] 作者: walking (巫龍王之說) 看板: Trading 標題: [心得]發表 外匯mt4 程式交易程式碼. for EURUSD. 時間: Fri Jan 29 12:03:30 2010 前幾天逛到的,抓來研究看看, 前1~2,用mt4跑測試,標的是 EURUSD ,績效卻是本金不斷遞減, 隨便改一些參數,以及小部分程式碼後,發現竟然是能穩定遞增. 測試數據小節,固定下 0.1 手. 時間範圍的選項:不打勾. 用H1跑,下單次數 150 多次,獲利約 500 左右. 用M5跑,下單次數約 100多次,獲利約300左右. 有些細節我還不是很清楚,算是拋磚引玉,有興趣的歡迎切磋. // 改自網友 "聖杯" 的範例 by Andrew Chen ,於 高雄.台灣. // [email protected] // 2010/1/29 // 原文網址 http://articles.mql4.com/cn/570 // 原作者資訊 Sergey Kovalyov, Dnepropetrovsk (Ukraine),[email protected],ICQ 64015987, http://autograf.dp.ua/ extern int TakeP =11; // 獲利 extern int StopL = 66; // 止損 extern int Distan = 12; extern int Cls = 25; extern int period_MA=16; extern int Prots = 0; //-------------------------------------------------------------------------------------------- int Nom_bl, Nom_sl, total, bl = 0, sl = 0, b = 0, s = 0; //-------------------------------------------------------------------------------------------- double OP, SL, TP, dist, Level, OP_bl, OP_sl, cls, MA, spred, Lot; int init() { Level=MarketInfo(Symbol(),MODE_STOPLEVEL); Level=(Level+1)*Point; SL=StopL*Point; TP=Takep*Point; dist=Distan*Point; cls=Cls*Point; spred=Ask-Bid; return; } int start() { //============================================================================================ total=OrdersTotal(); bl=0; sl=0; b=0; s=0; //-------------------------------------------------------------------------------------------- for (int i=total; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS)==true && OrderSymbol()==Symbol()) { //-------------------------------------------------------------------------------------------- if (OrderType()==OP_BUY) { b =1; Close_B(OrderTicket(),OrderLots()); } //-------------------------------------------------------------------------------------------- if (OrderType()==OP_SELL) { s =1; Close_S(OrderTicket(),OrderLots()); } //-------------------------------------------------------------------------------------------- if (OrderType()==OP_BUYLIMIT) { OP_bl=NormalizeDouble(OrderOpenPrice(),Digits); Nom_bl=OrderTicket(); bl=1; } //-------------------------------------------------------------------------------------------- if (OrderType()==OP_SELLLIMIT) { OP_sl=NormalizeDouble(OrderOpenPrice(),Digits); Nom_sl=OrderTicket(); sl=1; } //-------------------------------------------------------------------------------------------- } } //-------------------------------------------------------------------------------------------- MA = iMA(NULL,0, period_MA, 0,MODE_LWMA, PRICE_TYPICAL, 0); Open_order() ; //============================================================================================ return; } void Close_B(int Nomber, double lots) { if (NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=cls) { OrderClose( Nomber, lots, Bid, 1, Yellow); b = 0; } return; } void Close_S(int Nomber, double lots) { if (NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=cls) { OrderClose( Nomber, lots, Ask, 1, Yellow); s = 0; } return; } void Open_order() { if (b==0 && bl==0) { OP=MA-dist; if(OP>Ask-Level) OP=Ask-Level; OP=NormalizeDouble(OP,Digits); OrderSend(Symbol(),OP_BUYLIMIT, Lots(),OP,3,OP-SL,OP+TP,"",0,0,Blue);// Open bl=1; } if (s==0 && sl==0) { OP=MA+spred+dist; if(OP<Bid+Level) OP=Bid+Level; OP=NormalizeDouble(OP,Digits); OrderSend(Symbol(),OP_SELLLIMIT,Lots(),OP,3,OP+SL,OP-TP,"",0,0,Red); sl=1; } return; } double Lots() { Lot=0.11; return(Lot); } -- 如果要看 有語法亮度的版本,可到 http://groups.google.com/group/forex_base/web/%E8%81%96%E6%9D%AF+a1 ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.81.196.201 ※ 編輯: walking 來自: 219.81.196.201 (01/29 12:20)
herculus6502:幾點意見:1.下買單的判斷沒考慮spread 01/29 14:50
herculus6502:2.這是一個單純的trend reversal的策略,原出處是 01/29 14:51
herculus6502:把它拿來作反面教材 01/29 14:52
難怪歐,還奇怪原版的 [獲利]目標只設 5點. 另外,我只測11點,並沒有測 10,12,13..等,說不定有更好的.. 如果有不錯的sample,還請推薦. 後來有跑一次,獲利 11~16,停損 52~88的組合,其他不變, 其中分數較高的,大概是以獲利 14,15,16, 等, 搭配停損 70~80上下的為主. 不過這次測試的 M5歷史資料,只有半年左右, -_-"
herculus6502:可以試著用matlab之類的程式把各參數對績效作圖看看 01/30 12:50
我後來發現 mt4 也有內建跑多組參的功能了, 真是嚇人,本來才懶的一組一組測.還在想會不會有熱心網友.. :p 不過輸出結果,只能排序,如果要做進一步的各種分析,還要還要在想想.. 另,它有內建 遺傳基因演化的選項,但我還不太清楚一些選項意義. ※ 編輯: walking 來自: 219.80.142.187 (01/31 11:35)