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

期貨期權交流能否把下面的tb源碼轉換成mc的源碼 [MC]

  • 咨詢內容: 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技術部: 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中都有這些函數,功能也是一樣的,但是TB的這四個函數取的是日K線上的四個價格,而MC的這四個函數取的是時間段00:00:00到23:59:59時間范圍內的開高低收四個價格。
    二、entryprice同樣在MC和TB中都有,功能也是一樣的,但是TB中只是表示當前部位的第一筆進場價格,不帶參數;而MC中這個后面不帶參數和帶有參數0意思是一樣的,都表示當前未平倉部位第一筆進場價格,后面帶1表示前一個平倉部位第一筆進場的價格,以此類推,后面還可以帶其它正數表示相應的意思。
    三、函數standarddev需要有三個參數,已經幫您更改了。
    四、如果您需要更準確的用MC執行您的交易策略,您需要貼上您的策略邏輯。

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 511411198  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 久久国产精品无码网站| 野花香高清在线观看视频播放免费 | 欧美粗大猛烈水多18p| 狠狠综合久久久久尤物丿| 欧美色吧视频在线观看| 18禁裸乳无遮挡啪啪无码免费| 99热这里只有精品免费播放| 99久久亚洲精品无码毛片| 97人人模人人爽人人少妇| 乱人伦中文字幕电影| 亚洲欧洲精品成人久久曰| 亚洲免费视频网| 久久国产午夜一区二区福利| 中文字幕在线视频不卡| yy4080私人影院6080青苹果手机| 99国产精品无码| 网站在线观看你懂的| 被窝影院午夜无码国产| 男彩虹用的app小蓝| 波多野结衣一区二区三区88| 最近2019在线观看| 成全高清视频免费观看| 天天碰免费视频| 国产欧美另类久久精品蜜芽| 国产无遮挡又黄又爽在线视频| 国产午夜成人AV在线播放| 国产在线播放免费| 同性女电影三级中文字幕| 亚洲毛片免费看| 久久免费观看国产99精品| 一本久久综合亚洲鲁鲁五月天| 911亚洲精品| 日韩av无码成人精品国产| 欧美成人看片黄a免费看| 最新浮力影院地址第一页| 日本卡一卡二新区| 女神捕电影高清在线观看| 国产女同在线观看| 人人澡人人澡人人看| 一级日本高清视频免费观看| 老鸭窝在线免费视频|