您現(xiàn)在的位置:程序化交易>> 期貨公式>> (MC)multicharts>> MC知識>>正文內(nèi)容

期貨期權(quán)交流能否把下面的tb源碼轉(zhuǎn)換成mc的源碼 [MC]

  • 咨詢內(nèi)容: Params ? ?? ???Numeric bollinglengths(50); ? ?? ???Numeric trendliqlength(50); ? ?? ???Numeric numstddevs(2); ? ?? ???Numeric swingprcnt1(0.5); ? ?? ???Numeric swingprcnt2(0.75); ? ?? ???Numeric atrlength(10); ? ?? ???Numeric swingtrendswitch(50); Vars ? ?? ?? ?? ?? ? BoolSeries swing(False); ? ?? ?? ?? ?? ? NumericSeries cmival; ? ?? ?? ?? ?? ? NumericSeries buyeasierday(0); ? ?? ?? ?? ?? ? NumericSeries selleasierday(0); ? ?? ?? ?? ?? ? NumericSeries trendlokbuy; ? ?? ?? ?? ?? ? NumericSeries trendloksell; ? ?? ?? ?? ?? ? NumericSeries trendbuypt; ? ?? ?? ?? ?? ? NumericSeries trendsellpt; ? ?? ?? ?? ?? ? NumericSeries keyofday; ? ?? ?? ?? ?? ? NumericSeries ma1; ? ?? ?? ?? ?? ? NumericSeries midd; ? ?? ?? ?? ?? ? Numeric swingprotstop;? ?? ??? ? ?? ?? ?? ?? ? Numeric atr; ? ?? ?? ?? ?? ? Numeric swingbuypt; ? ?? ?? ?? ?? ? Numeric swingsellpt; Begin ? ?? ???Commentary("BarInterval= "+Text(BarInterval)); ? ?? ?? ?? ?? ? cmival=Abs(Close[1]-Close[31])/(Highest(High[1],30)-Lowest(Low[1],30)); ? ?? ?? ?? ?? ? trendloksell=Average(Low[1],3*240/BarInterval); ? ?? ?? ?? ?? ? trendlokbuy=Average(High[1],3*240/BarInterval); ? ?? ?? ?? ?? ? keyofday=(HighD(0)+LowD(0)+CloseD(0))/3; ? ?? ?? ?? ?? ? If(Date<>Date[1]){ ? ?? ?? ?? ?? ? If(CloseD(1)>keyofday[1]) ? ?? ?? ?? ?? ? { ? ?? ?? ?? ?? ? selleasierday=1;//空頭日 ? ?? ?? ?? ?? ? }Else{ ? ?? ?? ?? ?? ? buyeasierday=1;//多頭日 ? ?? ?? ?? ?? ? } } ? ?? ???Atr=XAverage(TrueRange,atrlength*240/BarInterval); If(buyeasierday==1){ ? ?? ???swingbuypt=OpenD(0)+swingprcnt1*atr; ? ?? ???swingsellpt=OpenD(0)-swingprcnt2*atr; } If(selleasierday==1){ ? ?? ???swingbuypt=OpenD(0)+swingprcnt2*atr; ? ?? ???swingsellpt=OpenD(0)-swingprcnt1*atr; } swingbuypt=Max(swingbuypt,trendlokbuy); swingsellpt=Min(swingsellpt,trendloksell); ?? PlotNumeric("Buy",swingbuypt); PlotNumeric("Sell",swingsellpt); ?? ma1=Average(Close[1],trendliqlength);//趨勢均線 midd=Average(Close[1],bollinglengths);//布林中線 trendbuypt=midd+numstddevs*StandardDev(Close[1],bollinglengths); trendsellpt=midd-numstddevs*StandardDev(Close[1],bollinglengths); ?? If(cmival<swingtrendswitch/100) { ? ?? ???If(MarketPosition==0&&High[1]>=swingbuypt) ? ?? ???//開多倉 { ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???Buy(1,Max(Open,swingbuypt)); ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True; } ? ?? ???If(MarketPosition==0&&Low[1]<=swingsellpt) ? ?? ???//開空倉 { ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???SellShort(1,Min(Open,swingsellpt)); ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True; } If(MarketPosition>0&&Low[1]<=swingsellpt) //多頭反手 { ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???SellShort(1, Min(Open,swingsellpt)); ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True; } If(MarketPosition<0&&High[1]>=swingbuypt) //空頭反手 { ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???Buy(1, Max(Open,swingbuypt)); ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True; } }Else{ ? ?? ???swingprotstop=atr*3; ? ?? ???If(MarketPosition==0&&High[1]>=trendbuypt) //開多倉 { ? ?? ???Buy(1,Max(Open,trendbuypt)); ? ?? ???swing=False; } If(MarketPosition==0&&Low[1]<=trendsellpt) //開空倉 { ? ?? ???SellShort(1,Min(Open,trendsellpt)); ? ?? ???swing=False; } If(MarketPosition>0&&swing) //多頭止損 { ? ?? ???If(Low[1]<=EntryPrice-swingprotstop) { ? ?? ???Sell(1,Min(Open, EntryPrice-swingprotstop)); }Else If(Low[1]<=ma1) { ? ?? ???Sell(1,Min(Open,ma1)); } } If(MarketPosition<0&&swing) //空頭止損 { ? ?? ???If(High[1]>=EntryPrice+swingprotstop) { ? ?? ???BuyToCover(1,Max(Open, EntryPrice+swingprotstop)); }Else If(High[1]>=ma1) { ? ?? ???BuyToCover (1,Max(Open,ma1)); } } } ?? End

    ?

  • MC技術(shù)部: inputs: bollinglengths(50), trendliqlength(50), numstddevs(2), swingprcnt1(0.5), swingprcnt2(0.75), atrlength(10), swingtrendswitch(50);

    Vars: swing(False), cmival(0), buyeasierday(0), selleasierday(0), trendlokbuy(0), trendloksell(0), trendbuypt(0), trendsellpt(0), keyofday(0),
    ma1(0), midd(0), swingprotstop(0), atr(0), swingbuypt(0), swingsellpt(0);


    Commentary("BarInterval= "+Text(BarInterval));
    cmival=Absvalue(Close[1]-Close[31])/(Highest(High[1],30)-Lowest(Low[1],30));
    trendloksell=Average(Low[1],3*240/BarInterval);
    trendlokbuy=Average(High[1],3*240/BarInterval);
    keyofday=(HighD(0)+LowD(0)+CloseD(0))/3;

    if date<>date[1] then
    if closed(1)>keyofday[1] then
    selleasierday=1
    else buyeasierday=1;

    Atr=XAverage(TrueRange,atrlength*240/BarInterval);
    If buyeasierday=1 then begin
    ? ?? ???swingbuypt=OpenD(0)+swingprcnt1*atr;
    ? ?? ???swingsellpt=OpenD(0)-swingprcnt2*atr;
    end;
    If selleasierday=1 then begin
    ? ?? ???swingbuypt=OpenD(0)+swingprcnt2*atr;
    ? ?? ???swingsellpt=OpenD(0)-swingprcnt1*atr;
    end;
    swingbuypt=Maxlist(swingbuypt,trendlokbuy);
    swingsellpt=Minlist(swingsellpt,trendloksell);
    ??

    ma1=Average(Close[1],trendliqlength);
    midd=Average(Close[1],bollinglengths);
    trendbuypt=midd+numstddevs*StandardDev(Close[1],bollinglengths,1);
    trendsellpt=midd-numstddevs*StandardDev(Close[1],bollinglengths,1);
    ??
    If cmival<(swingtrendswitch/100) then begin
    ? ?? ???If MarketPosition=0 and High[1]>=swingbuypt then begin
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???Buy 1 shares next bar at Maxlist(Open,swingbuypt) limit;
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True;
    end;
    ? ?? ???If MarketPosition=0 and Low[1]<=swingsellpt then begin
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???SellShort 1 shares next bar at Minlist(Open,swingsellpt) limit;
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True;
    end;
    ? ?? ???If MarketPosition>0 and Low[1]<=swingsellpt then begin
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???SellShort 1 shares next bar at Minlist(Open,swingsellpt) limit;
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True;
    end;
    ? ?? ???If MarketPosition<0 and High[1]>=swingbuypt then begin
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???Buy 1 shares next bar at Maxlist(Open,swingbuypt) limit;
    ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???swing=True;
    end
    Else begin
    ? ?? ???swingprotstop=atr*3;
    ? ?? ???If MarketPosition=0 and High[1]>=trendbuypt then begin
    ? ?? ???Buy 1 shares next bar at Maxlist(Open,trendbuypt) limit;
    ? ?? ???swing=False;
    end;
    If MarketPosition=0 and Low[1]<=trendsellpt then begin
    ? ?? ???SellShort 1 shares next bar at Minlist(Open,trendsellpt) limit;
    ? ?? ???swing=False;
    end;

    If MarketPosition>0 and swing then
    ? ?? ???If Low[1]<=EntryPrice-swingprotstop then
    ? ?? ???Sell 1 shares next bar at Minlist(Open, EntryPrice-swingprotstop) limit
    Else If Low[1]<=ma1 then
    ? ?? ???Sell 1 shares next bar at Minlist(Open,ma1) limit;

    If MarketPosition<0 and swing then
    ? ?? ???If High[1]>=EntryPrice+swingprotstop then
    ? ?? ???BuyToCover 1 shares next bar at Maxlist(Open, EntryPrice+swingprotstop) limit
    Else If High[1]>=ma1 then
    ? ?? ???BuyToCover 1 shares next bar at Maxlist(Open,ma1) limit;
    end;
    end;


    以上部分是翻譯過來的MC代碼,但是有幾點需要告訴您:
    一、opend、highd、lowd和closed在TB和MC中都有這些函數(shù),功能也是一樣的,但是TB的這四個函數(shù)取的是日K線上的四個價格,而MC的這四個函數(shù)取的是時間段00:00:00到23:59:59時間范圍內(nèi)的開高低收四個價格。
    二、entryprice同樣在MC和TB中都有,功能也是一樣的,但是TB中只是表示當(dāng)前部位的第一筆進(jìn)場價格,不帶參數(shù);而MC中這個后面不帶參數(shù)和帶有參數(shù)0意思是一樣的,都表示當(dāng)前未平倉部位第一筆進(jìn)場價格,后面帶1表示前一個平倉部位第一筆進(jìn)場的價格,以此類推,后面還可以帶其它正數(shù)表示相應(yīng)的意思。
    三、函數(shù)standarddev需要有三個參數(shù),已經(jīng)幫您更改了。
    四、如果您需要更準(zhǔn)確的用MC執(zhí)行您的交易策略,您需要貼上您的策略邏輯。

 

有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 511411198  點擊這里給我發(fā)消息進(jìn)行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關(guān)文章

    沒有相關(guān)內(nèi)容
主站蜘蛛池模板: www一区二区| 与子乱刺激对白在线播放| 68日本xxxⅹxxxxx18| 无码人妻精品一二三区免费| 亚洲国产欧美在线人成北岛玲 | 亚洲欧洲日产v特级毛片| 美国成人a免费毛片| 国产成人午夜高潮毛片| 8888四色奇米在线观看不卡| 嫩草影院在线播放www免费观看| 久久国产精品自由自在| 欧美性猛交xxxx乱大交极品| 伊人蕉久中文字幕无码专区| 翁熄系列回乡下| 国产大片免费天天看| 1000部拍拍拍18勿入免费视频下载 | 亚洲人午夜射精精品日韩| 狠狠色丁香婷婷久久综合蜜芽| 国产60部真实乱| 黄色一级片在线播放| 国产精品嫩草影院人体模特| 久久国产精彩视频| 欧美日本另类xxx乱大交| 免费国产高清视频| 色噜噜狠狠一区二区三区果冻| 国产普通话对白刺激| 91女神疯狂娇喘3p之夜| 好看的国产精品| 中文字幕影片免费在线观看 | 97精品伊人久久大香线蕉| 小雪把双腿打开给老杨看免费阅读| 久久久久无码国产精品一区| 村上凉子丰满禁断五十路| 午夜爽爽爽男女免费观看hd| 香蕉视频黄色在线观看| 国产精品亚洲а∨无码播放不卡| 99在线精品视频在线观看| 少妇高潮太爽了在线观看| 久久久久亚洲精品中文字幕| 日韩高清在线免费看| 亚洲人成亚洲人成在线观看|