请教ilian老大,下面的script老是提示37行的else多余,还缺;?是什么原因? using System; using System.Collections.Generic; using System.Text; using System.Drawing; using WealthLab; using WealthLab.Indicators; namespace WealthLab.Strategies { public class MyStrategy : WealthScript { protected override void Execute() { DataSeries maFast = SMA.Series(Close, 5); DataSeries maSlow = SMA.Series(Close, 30); DataSeries maFast_1 = SMA.Series(Close, 5); DataSeries maSlow_2 = SMA.Series(Close, 120); DataSeries maFast_3 = SMA.Series(Close, 10); DataSeries maSlow_4 = SMA.Series(Close,60); PlotSeries(PricePane,SMA.Series(Close,5),Color.Red,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,30),Color.Green,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,5),Color.Red,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,120),Color.Green,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,10),Color.Red,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,60),Color.Green,LineStyle.Solid,2); for(int bar = 20; bar < Bars.Count; bar++) { if (IsLastPositionActive) { //code your exit rules here if(CrossUnder(bar,maFast_3,maSlow_4)) { for(int p=ActivePositions.count-1; p>-1; p--) SellAtMarket(bar+1,ActivePositions[p] ); else { if(CrossOver(bar,maFast_1,maSlow_2)) BuyAtMarket(bar+1); } } } else { //code your entry rules here if(CrossOver(bar,maFast,maSlow)) BuyAtMarket(bar+1); } } } } } 请指较,谢谢!
电脑给的答案是 using System; using System.Collections.Generic; using System.Text; using System.Drawing; using WealthLab; using WealthLab.Indicators; namespace WealthLab.Strategies { public class MyStrategy : WealthScript { protected override void Execute() { DataSeries maFast = SMA.Series(Close, 10); DataSeries maSlow = SMA.Series(Close, 30); DataSeries maFast_1 = SMA.Series(Close, 10); DataSeries maSlow_2 = SMA.Series(Close, 60); DataSeries maFast_3 = SMA.Series(Close, 20); DataSeries maSlow_4 = SMA.Series(Close, 120); PlotSeries(PricePane,SMA.Series(Close,10),Color.Red,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,30),Color.Green,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,10),Color.Red,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,60),Color.Green,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,20),Color.Red,LineStyle.Solid,2); PlotSeries(PricePane,SMA.Series(Close,120),Color.Green,LineStyle.Solid,2); for(int bar = GetTradingLoopStartBar(121); bar < Bars.Count; bar++) { if (LastActivePosition != null && LastActivePosition.Active) if (LastActivePosition.NetProfitAsOfBar(bar) > 0) { if (maFast_3[bar] > maSlow_4[bar]) { BuyAtClose(bar, ""); } } if (CrossOver(bar, maFast, maSlow)) { BuyAtClose(bar, "Group1|"); } for(int _pos = ActivePositions.Count - 1; _pos >= 0; _pos--) { Position p = ActivePositions[_pos]; if (p.Active) { if (p.EntrySignal.Contains("Group1|")) { if (CrossUnder(bar, maFast_1, maSlow_2)) { SellAtClose(bar, p, "Group1"); } } } } } } } }