期貨軟件TB系統(tǒng)源代碼解讀系列51-四均線交易系統(tǒng)

我一直也在用均線的交易系統(tǒng),可關(guān)于四均線交易系統(tǒng)妒峦,還真沒想過這個(gè)重斑,一般都只用兩根的比較兵睛。這可以借鑒一下思路,好不好,就看個(gè)人喜好了祖很。

策略說明:

基于4均線系統(tǒng)進(jìn)行判斷交易

系統(tǒng)要素:

(5和20周期均線),(3和10周期均線)構(gòu)成的兩組不同周期的均線組合

入場(chǎng)條件:

當(dāng)2組均線均成多頭排列時(shí)且當(dāng)前價(jià)高于上根BAR最高價(jià)入場(chǎng)

出場(chǎng)條件:

1. 小周期多頭均線組合成空頭排列

2. 兩組空頭均線分別空頭排列且低于上根BAR最低價(jià)出場(chǎng)

均線嘛笛丙,也不涉及什么新函數(shù)了,就是一個(gè)求均值函數(shù)Average假颇,這個(gè)解讀過胚鸯,下邊復(fù)制一下,讓大家重溫看下笨鸡,不做解讀姜钳,代碼如下:

Params

NumericSeries Price(1);

Numeric Length(10);

Vars

Numeric AvgValue;

Begin

AvgValue = Summation(Price, Length) / Length;

Return AvgValue;

End

接下來直接看這四均線交易系統(tǒng)的做多代碼及相應(yīng)解讀了,如下:

Params

Numeric LEFast(5); //聲明數(shù)值參數(shù)LEFast形耗,初值5哥桥,即多頭入場(chǎng)短均線周期參數(shù)。//

Numeric LESlow(20); //聲明數(shù)值參數(shù)LESlow激涤,初值20拟糕,即多頭入場(chǎng)長(zhǎng)均線周期參數(shù)。//

Numeric LXFast(3); //聲明數(shù)值參數(shù)LXFast倦踢,初值3送滞,即多頭出場(chǎng)短均線周期參數(shù)。//

Numeric LXSlow(10); //聲明數(shù)值參數(shù)LXSlow辱挥,初值10犁嗅,即多頭出場(chǎng)長(zhǎng)均線周期參數(shù)。//

Numeric SEFast(5); //聲明數(shù)值參數(shù)SEFast晤碘,初值5愧哟,即空頭入場(chǎng)短均線周期參數(shù)。//

Numeric SESlow(20); //聲明數(shù)值參數(shù)SESlow哼蛆,初值20蕊梧,即空頭入場(chǎng)長(zhǎng)均線周期參數(shù)。//

Numeric SXFast(3); //聲明數(shù)值參數(shù)SXFast腮介,初值3肥矢,即空頭出場(chǎng)短均線周期參數(shù)。//

Numeric SXSlow(10); //聲明數(shù)值參數(shù)SXSlow叠洗,初值10甘改,即空頭出場(chǎng)長(zhǎng)均線周期參數(shù)。//

Vars

NumericSeries MALEFast;//聲明數(shù)值序列變量MALEFast灭抑,即多頭入場(chǎng)短均線十艾。//

NumericSeries MALESlow;//聲明數(shù)值序列變量MALSlow,即多頭入場(chǎng)長(zhǎng)均線腾节。//

NumericSeries MALXFast;//聲明數(shù)值序列變量MALXFast忘嫉,即多頭出場(chǎng)短均線荤牍。//

NumericSeries MALXSlow;//聲明數(shù)值序列變量MALXSlow,即多頭出場(chǎng)長(zhǎng)均線庆冕。//

NumericSeries MASEFast;//聲明數(shù)值序列變量MASEFast康吵,即空頭入場(chǎng)短均線。//

NumericSeries MASESlow;//聲明數(shù)值序列變量MASEFSlow访递,即空頭入場(chǎng)長(zhǎng)均線晦嵌。//

NumericSeries MASXFast;//聲明數(shù)值序列變量MASXFast,即空頭出場(chǎng)短均線拷姿。//

NumericSeries MASXSlow;//聲明數(shù)值序列變量MASXSlow惭载,即空頭出場(chǎng)長(zhǎng)均線。//

Begin

If(!CallAuctionFilter()) Return;// 集合競(jìng)價(jià)和小節(jié)休息過濾响巢。//

//下來這些都是關(guān)于均線的算法棕兼,即代入相應(yīng)收盤價(jià)與周期返回求值就行。//

MALEFast=Average(Close,LEFast);//多頭入場(chǎng)短均線抵乓。//

MALESlow=Average(Close,LESlow);//多頭入場(chǎng)長(zhǎng)均線伴挚。//

MALXFast=Average(Close,LXFast);//多頭出場(chǎng)短均線。//

MALXSlow=Average(Close,LXSlow);//多頭出場(chǎng)長(zhǎng)均線灾炭。//

MASEFast=Average(Close,SEFast);//空頭入場(chǎng)短均線茎芋。//

MASESlow=Average(Close,SESlow);//空頭入場(chǎng)長(zhǎng)均線。//

MASXFast=Average(Close,SXFast);//空頭出場(chǎng)短均線蜈出。//

MASXSlow=Average(Close,SXSlow);//空頭出場(chǎng)長(zhǎng)均線田弥。//

//系統(tǒng)入場(chǎng)的條件設(shè)置。//

If(Marketposition <> 1 and Currentbar >= 100)?//假如當(dāng)前沒有持多單铡原,并且當(dāng)前k線索引值大于等于100的偷厦。//

{

??If(MALEFast[1] > MALESlow[1] and MALXFast[1] > MALXSlow[1] and High >= High[1] And Vol > 0)//就是拿快慢兩均線對(duì)比了,形成兩組均線均成多頭排列時(shí)且當(dāng)前價(jià)高于上根k線的最高價(jià)入場(chǎng)燕刻。//

??{

Buy(0,Max(Open,High[1]));//開多只泼,價(jià)格為前一k線最高價(jià)與開盤價(jià)的比較取大值。//

??}

}

//系統(tǒng)出場(chǎng)條件設(shè)置卵洗。//

If(marketposition == 1 and BarsSinceEntry > 0 And Vol > 0)//假如當(dāng)前持有多單请唱,并且開倉的k線數(shù)位大于0,并且成交量大于0.//

{

??If(MALXFast[1] < MALXSlow[1] )???//兩均線對(duì)比过蹂,形成小周期多頭均線組合成空頭排列出場(chǎng)十绑。//

{

Sell(0,Open);//以開盤價(jià)平倉了。//

}

??Else If( MASEFast[1] < MASESlow[1] and MASXFast[1] < MASXSlow[1] and Low <= Low[1])?//兩組均線分別空頭排列且低于上根k線最低價(jià)出場(chǎng)酷勺。//

{

Sell(0,Min(Open,Low[1]));//開空本橙,價(jià)格為前一k線最低價(jià)與開盤價(jià)的比較取小值。//

}

}

End

解讀完源代碼脆诉,我覺得還好甚亭,但可能不符合我的操作理念贷币,它這里邊設(shè)置的參數(shù)太多了,看著我都頭暈狂鞋,而且這盈虧比一般,成功率也不高潜的,當(dāng)然這些參數(shù)都可以依據(jù)個(gè)人喜好而修改的骚揍。我更喜歡的是用一根200-360的周期確定多空方向,再根據(jù)個(gè)人喜好選定兩條均線參數(shù)啰挪。好了信不,也不廢話了,直接看做空的四均線源代碼及結(jié)果如下:

Params

Numeric LEFast(5);

Numeric LESlow(20); ?

Numeric LXFast(3);

Numeric LXSlow(10);

Numeric SEFast(5);

Numeric SESlow(20);

Numeric SXFast(3);

Numeric SXSlow(10);

Vars

NumericSeries MALEFast;

NumericSeries MALESlow;

NumericSeries MALXFast;

NumericSeries MALXSlow;

NumericSeries MASEFast;

NumericSeries MASESlow;

NumericSeries MASXFast;

NumericSeries MASXSlow;

Begin

If(!CallAuctionFilter()) Return;

MALEFast=Average(Close,LEFast);

MALESlow=Average(Close,LESlow);

MALXFast=Average(Close,LXFast);

MALXSlow=Average(Close,LXSlow);

MASEFast=Average(Close,SEFast);

MASESlow=Average(Close,SESlow);

MASXFast=Average(Close,SXFast);

MASXSlow=Average(Close,SXSlow);

If(Marketposition <> -1 and Currentbar >= 100)

{

If(MASEFast[1] < MASESlow[1] and MASXFast[1] < MASXSlow[1]?and Low <= Low[1] And Vol > 0)

{

SellShort(0,Min(Open,Low[1]));

??}

}

If(MarketPosition == -1 and BarsSinceEntry > 0 And Vol > 0)

{

??If(MASXFast[1] > MASXSlow[1])

??{

??BuyToCover(0,Open); ?

}

??Else if( MALEFast[1] > MALESlow[1] and MALXFast[1] > MALXSlow[1] and High >= High[1] )

{

BuyToCover(0,Max(Open,High[1]));

}

}

End

看著結(jié)果總感覺別扭亡呵,既然寫到這了抽活,我就按照我上面的意愿修改一下,看結(jié)果如何的锰什。修改的代碼及結(jié)果如下:

Params

Numeric LEFast(20);

Numeric LESlow(50); ?

Numeric LXFast(300);

Vars

NumericSeries MALEFast;

NumericSeries MALESlow;

NumericSeries MALXFast;

Begin

If(!CallAuctionFilter()) Return;

MALEFast=Average(Close,LEFast);

MALESlow=Average(Close,LESlow);

MALXFast=Average(Close,LXFast);

If(Marketposition <> 1 and Currentbar >= 100)??

{

??If(MALEFast[1] > MALESlow[1] and Close[1] > MALXFast[1]?and High >= High[1] And Vol > 0)

??{

Buy(0,Max(Open,High[1]));

??}

}


If(marketposition == 1 and BarsSinceEntry > 0 And Vol > 0)

{

If( MALEFast[1] < MALESlow[1] and Low <= Low[1])??

{

Sell(0,Min(Open,Low[1]));

}

}

If(Marketposition <> -1 and Currentbar >= 100)?

{

If(MALEFast[1] < MALESlow[1] and Close[1] < MALXFast[1] and Low <= Low[1] And Vol > 0)

{

SellShort(0,Min(Open,Low[1]));

?}

}

If(MarketPosition == -1 and BarsSinceEntry > 0 And Vol > 0)

{

?if( MALEFast[1] > MALESlow[1] and?High >= High[1] )?

{

BuyToCover(0,Max(Open,High[1]));

}

}

End

看這結(jié)果相對(duì)好多的吧下硕,所以一個(gè)程序化交易系統(tǒng),在你理解基礎(chǔ)上汁胆,按照你個(gè)人經(jīng)驗(yàn)修改好梭姓,比單純的復(fù)制粘貼,不理解具體意思嫩码,只是粗略看結(jié)果誉尖,這沒什么進(jìn)步的。你借鑒別人的買賣規(guī)則铸题,再加入自己的理解铡恕,一個(gè)好的程序基本是可以做出來的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丢间,一起剝皮案震驚了整個(gè)濱河市探熔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烘挫,老刑警劉巖祭刚,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異墙牌,居然都是意外死亡涡驮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門喜滨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捉捅,“玉大人,你說我怎么就攤上這事虽风“艨冢” “怎么了寄月?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)无牵。 經(jīng)常有香客問我漾肮,道長(zhǎng),這世上最難降的妖魔是什么茎毁? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任克懊,我火速辦了婚禮,結(jié)果婚禮上七蜘,老公的妹妹穿的比我還像新娘谭溉。我一直安慰自己,他們只是感情好橡卤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布扮念。 她就那樣靜靜地躺著,像睡著了一般碧库。 火紅的嫁衣襯著肌膚如雪柜与。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天嵌灰,我揣著相機(jī)與錄音旅挤,去河邊找鬼。 笑死伞鲫,一個(gè)胖子當(dāng)著我的面吹牛粘茄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秕脓,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼柒瓣,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吠架?” 一聲冷哼從身側(cè)響起芙贫,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎傍药,沒想到半個(gè)月后磺平,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拐辽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年拣挪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俱诸。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡菠劝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睁搭,到底是詐尸還是另有隱情赶诊,我是刑警寧澤笼平,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站舔痪,受9級(jí)特大地震影響寓调,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锄码,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一夺英、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巍耗,春花似錦秋麸、人聲如沸渐排。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驯耻。三九已至亲族,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間可缚,已是汗流浹背霎迫。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帘靡,地道東北人知给。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像描姚,于是被迫代替她去往敵國(guó)和親涩赢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容