新手求助:可否幫我實(shí)現(xiàn)一套止贏止損基礎(chǔ)策略代碼? [MC]
-
MC用戶求助:
大概理解您的意思,不過還是想以一個(gè)例子來(lái)理清一下思路:
1、假設(shè)周期是15分鐘周期,M代表的是7分鐘,d代表的是3分鐘,第一根bar的收盤價(jià)是9:15分鐘。
2、基于上述假設(shè),建倉(cāng)清倉(cāng)周期時(shí)間點(diǎn)分別是9:22,9:29,依此類推,每次加7分鐘是吧。
3、在9:25分鐘的時(shí)候,以市價(jià)買入一手建倉(cāng)。
4、那么請(qǐng)問,您的策略是否涉及加倉(cāng),也就是當(dāng)前有多頭持倉(cāng)的情況下,下一個(gè)多頭建倉(cāng)的時(shí)間點(diǎn)是9:32分鐘。
5、在9:25分鐘的時(shí)候買入建倉(cāng)了,那么在9:29分鐘之前,若價(jià)格沒有達(dá)到損失或者盈利百分比就會(huì)在9:29進(jìn)行市價(jià)平倉(cāng),是吧。
6、若9:29平倉(cāng)了,那么會(huì)在9:32再次多頭進(jìn)場(chǎng)是吧,然后再循環(huán)平倉(cāng)建倉(cāng)進(jìn)行下去是吧
?
-
MC回復(fù)討論一:
大概理解您的意思,不過還是想以一個(gè)例子來(lái)理清一下思路:
1、假設(shè)周期是15分鐘周期,M代表的是7分鐘,d代表的是3分鐘,第一根bar的收盤價(jià)是9:15分鐘。
2、基于上述假設(shè),建倉(cāng)清倉(cāng)周期時(shí)間點(diǎn)分別是9:22,9:29,依此類推,每次加7分鐘是吧。
3、在9:25分鐘的時(shí)候,以市價(jià)買入一手建倉(cāng)。
4、那么請(qǐng)問,您的策略是否涉及加倉(cāng),也就是當(dāng)前有多頭持倉(cāng)的情況下,下一個(gè)多頭建倉(cāng)的時(shí)間點(diǎn)是9:32分鐘。
5、在9:25分鐘的時(shí)候買入建倉(cāng)了,那么在9:29分鐘之前,若價(jià)格沒有達(dá)到損失或者盈利百分比就會(huì)在9:29進(jìn)行市價(jià)平倉(cāng),是吧。
6、若9:29平倉(cāng)了,那么會(huì)在9:32再次多頭進(jìn)場(chǎng)是吧,然后再循環(huán)平倉(cāng)建倉(cāng)進(jìn)行下去是吧
?
-
MC回復(fù)討論二:
感謝這么快的回應(yīng)!
不涉及加倉(cāng),競(jìng)價(jià)階段不參與,其他描述無(wú)誤。
另外,補(bǔ)充一個(gè)需求點(diǎn):第一次開倉(cāng)有2種情況,除了上面說的第一根bar之外,還允許指定一個(gè)絕對(duì)時(shí)間(日期時(shí)分秒),這樣我可以提前計(jì)劃從哪個(gè)時(shí)間點(diǎn)開始真正運(yùn)行策略。
謝謝Alex!
?
-
MC回復(fù)討論三:
[IntrabarOrderGeneration=true]
input: time_begin(91500), time_M(700), time_d(300), ploss(0.01), pprofit(0.01);
var: intrabarpersist time_define0(0), intrabarpersist time_define1(0), intrabarpersist minus_seconds(0), intrabarpersist time_b(time_begin), intrabarpersist var_begin(0), intrabarpersist var_end(0);
var: intrabarpersist time_end(0), intrabarpersist date0(0), intrabarpersist date1(0);
value1=getappinfo(airealtimecalc);? ?//判斷是否實(shí)時(shí)行情
once begin
? ? ? ? once cleardebug;
? ? ? ? minus_seconds=timetoseconds(time_m)-timetoseconds(time_d);
? ? ? ? time_end=secondstotime_s(timetoseconds(230000)-timetoseconds(time_m)-timetoseconds(time_d)-300);
end;
time_define0=time_define1;??
{time_define0存儲(chǔ)前一筆tick的時(shí)間,而time_define1存儲(chǔ)當(dāng)筆tick的時(shí)間;同時(shí)下面的date0和date1也是同樣的原理}
date0=date1;
date1=date;
if value1=0 then
? ? ? ? time_define1=time_s
else if value1=1 then
? ? ? ? time_define1=q_time_s;
{以上4行代碼,用于將回測(cè)的bar內(nèi)時(shí)間與實(shí)行行情的時(shí)間連接起來(lái),都存儲(chǔ)在變量time_define1中}
if date1<>date0 then begin
? ? ? ? var_begin=secondstotime_s(timetoseconds(time_begin)+timetoseconds(time_d));
? ? ? ? var_end=secondstotime_s(timetoseconds(var_begin)+minus_seconds);
end;
if marketposition=0 and time_define0<=var_begin and time_define1>=var_begin and time_define1<time_end then begin
? ? ? ? buy next bar at market;
? ? ? ? var_end=secondstotime_s(timetoseconds(time_define1)+minus_seconds);
end;
if marketposition=1 and (close>=entryprice*(1+pprofit) or close<=entryprice*(1-ploss) or (time_define0<=var_end and time_define1>=var_end)) then begin
? ? ? ? sell next bar at market;
? ? ? ? var_begin=secondstotime_s(timetoseconds(time_define1)+timetoseconds(time_d));
end;
注意事項(xiàng):
第一、這個(gè)代碼可以用于夜盤品種,但是夜盤結(jié)束時(shí)間不能在凌晨;若需要適合所有的夜盤,需要做簡(jiǎn)單的處理。
第二、見附圖,需要訪問bar內(nèi)時(shí)間,這樣才可以用于回測(cè),否則只能用于實(shí)時(shí)行情中。
第三、在信號(hào)設(shè)置中允許單一bar多筆進(jìn)出場(chǎng)。
第四、因?yàn)槟牟呗曰旧弦呀?jīng)不屬于常規(guī)利用bar與bar之間的關(guān)系了,而是直接使用時(shí)間間隔進(jìn)行處理的范疇,所以挺麻煩。
第五、以上代碼一次沒有辦法教會(huì)您,您可能需要一點(diǎn)點(diǎn)學(xué)習(xí),不懂多問。
?
-
MC回復(fù)討論四:
[IntrabarOrderGeneration=true]
input: time_begin(91500), time_M(700), time_d(300), ploss(0.01), pprofit(0.01);
var: intrabarpersist time_define0(0), intrabarpersist time_define1(0), intrabarpersist minus_seconds(0), intrabarpersist time_b(time_begin), intrabarpersist var_begin(0), intrabarpersist var_end(0);
var: intrabarpersist time_end(0), intrabarpersist date0(0), intrabarpersist date1(0);
value1=getappinfo(airealtimecalc);? ?//判斷是否實(shí)時(shí)行情
once begin
? ? ? ? once cleardebug;
? ? ? ? minus_seconds=timetoseconds(time_m)-timetoseconds(time_d);
? ? ? ? time_end=secondstotime_s(timetoseconds(230000)-timetoseconds(time_m)-timetoseconds(time_d)-300);
end;
time_define0=time_define1;??
{time_define0存儲(chǔ)前一筆tick的時(shí)間,而time_define1存儲(chǔ)當(dāng)筆tick的時(shí)間;同時(shí)下面的date0和date1也是同樣的原理}
date0=date1;
date1=date;
if value1=0 then
? ? ? ? time_define1=time_s
else if value1=1 then
? ? ? ? time_define1=q_time_s;
{以上4行代碼,用于將回測(cè)的bar內(nèi)時(shí)間與實(shí)行行情的時(shí)間連接起來(lái),都存儲(chǔ)在變量time_define1中}
if date1<>date0 then begin
? ? ? ? var_begin=secondstotime_s(timetoseconds(time_begin)+timetoseconds(time_d));
? ? ? ? var_end=secondstotime_s(timetoseconds(var_begin)+minus_seconds);
end;
if marketposition=0 and time_define0<=var_begin and time_define1>=var_begin and time_define1<time_end then begin
? ? ? ? buy next bar at market;
? ? ? ? var_end=secondstotime_s(timetoseconds(time_define1)+minus_seconds);
end;
if marketposition=1 and (close>=entryprice*(1+pprofit) or close<=entryprice*(1-ploss) or (time_define0<=var_end and time_define1>=var_end)) then begin
? ? ? ? sell next bar at market;
? ? ? ? var_begin=secondstotime_s(timetoseconds(time_define1)+timetoseconds(time_d));
end;
注意事項(xiàng):
第一、這個(gè)代碼可以用于夜盤品種,但是夜盤結(jié)束時(shí)間不能在凌晨;若需要適合所有的夜盤,需要做簡(jiǎn)單的處理。
第二、見附圖,需要訪問bar內(nèi)時(shí)間,這樣才可以用于回測(cè),否則只能用于實(shí)時(shí)行情中。
第三、在信號(hào)設(shè)置中允許單一bar多筆進(jìn)出場(chǎng)。
第四、因?yàn)槟牟呗曰旧弦呀?jīng)不屬于常規(guī)利用bar與bar之間的關(guān)系了,而是直接使用時(shí)間間隔進(jìn)行處理的范疇,所以挺麻煩。
第五、以上代碼一次沒有辦法教會(huì)您,您可能需要一點(diǎn)點(diǎn)學(xué)習(xí),不懂多問。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容