[求助]麻煩老師了
作者:文華財經 來源:cxh99.com 發布時間:2018年04月06日
-
咨詢內容:
?麻煩老師改成文化可用的
Params? ? ? Numeric Length(40);? ? ? Numeric NumATRs(1);
?Numeric Offset(1);
?Numeric ATRLength(10);
?Numeric TrailingStart(1);
?Numeric StopLossSet(4);
?Numeric TrailingStop(3);Vars? ? ? NumericSeries TPrice;? ? ? Numeric AvgValue;? ? ? NumericSeries ShiftValue;? ? ? Numeric UpperBand;? ? ? Numeric LowerBand;? ? ? Numeric MyPrice;
?Numeric UpLine;
//上軌
?Numeric DownLine;
//下軌?
?NumericSeries MidLine;
//中間線
?Numeric Band;
?NumericSeries HigherAfterEntry;
?NumericSeries LowerAfterEntry;
?Numeric DayOpen;
?Numeric StopLine;
?BoolSeries bLongTrailingStoped;? ? ? BoolSeries bShortTrailingStoped;
?Numeric MinPoint;Begin? ? ?MinPoint = MinMove*PriceScale;? ? ?DayOpen=AvgEntryPrice;
TPrice=(High[1]+Low[1]+Close[1])/3;? ? ?AvgValue=AverageFC(TPrice,Length);? ? ?ShiftValue=NumATRs*AvgTrueRange(ATRLength);? ? ?UpperBand=AvgValue+ShiftValue[1];? ? ?LowerBand=AvgValue-ShiftValue[1];
MidLine = AverageFC(Close,Length);
Band = StandardDev(Close,Length,2);?
UpLine = MidLine + Offset * Band;
DownLine = MidLine - Offset * Band;?
?If(BarStatus > 0){
bLongTrailingStoped = bLongTrailingStoped[1];
bShortTrailingStoped = bShortTrailingStoped[1];}Commentary("bLTrue","False"));Commentary("bShortTrailingStoped="+IIFString(bShortTrailingStoped,"True","False"));
If(BarsSinceEntry==1){? ? HigherAfterEntry=AvgEntryPrice;? ? LowerAfterEntry=HigherAfterEntry;}Else// If(BarsSinceEntry>1){? ? ? ?HigherAfterEntry=max(HigherafterEntry[1],High[1]);? ? ? ?LowerAfterEntry=min(LowerAfterEntry[1],Low[1]);}If(bLongTrailingStoped==False && MarketPosition!=1&&High>=UpperBand)? ?{? ? ? MyPrice=UpperBand;? ? ? If(Open>MyPrice)MyPrice=Open;? ? ? Buy(1,MyPrice);
?bLongTrailingStoped=True;
?bShortTrailingStoped=False;? ? ? Return;? ?}If(bShortTrailingStoped==False && MarketPosition!=-1&&Low<=LowerBand){? ? ?MyPrice=LowerBand;? ? ?If(Open<MyPrice)MyPrice=Open;? ? ?SellShort(1,MyPrice);?
bShortTrailingStoped=True;
bLongTrailingStoped=False;? ? ?Return;}If(HigherAfterEntry>=AvgEntryPrice+DayOpen*TrailingStart*0.01&&MarketPosition==1){? ? ? ?StopLine=HigherAfterEntry-DayOpen*TrailingStop*0.01;}Else//止損{? ? ? ?StopLine=UpperBand-DayOpen*StopLossSet*0.01;}If(Low<=StopLine){? ? ? ?MyPrice=StopLine;? ? ? ?If(Open<MyPrice)MyPrice=Open;? ? ? ?Sell(1,MyPrice);
? bLongTrailingStoped=True;
? bShortTrailingStoped=False;? ? ? ?Return;}If(LowerAfterEntry<=AvgEntryPrice-DayOpen*TrailingStart*0.01&&MarketPosition==-1){? ? ? ?StopLine=LowerAfterEntry+DayOpen*TrailingStop*0.01;}Else//止損{? ? ? ?StopLine=LowerBand+DayOpen*StopLossSet*0.01;}
If(High>=StopLine){? ? ? ?MyPrice=StopLine;? ? ? ?If(Open>MyPrice)MyPrice=Open;? ? ? ?Buytocover(1,MyPrice);
bShortTrailingStoped=True;
bLongTrailingStoped=False;? ? ? ?Return;}
//再次入場的代碼If(bLongTrailingStoped && MarketPosition==0 && High > HigherAfterEntry){
MyPrice = HigherAfterEntry + MinPoint;
If(Open > MyPrice) MyPrice = Open;
Buy(1,MyPrice);
bLongTrailingStoped = False;
bShortTrailingStoped= True;
Return;}If(bShortTrailingStoped && MarketPosition==0 && Low < LowerAfterEntry){
MyPrice = LowerAfterEntry - MinPoint;
If(Open < MyPrice) MyPrice = Open;
SellShort(1,MyPrice);
bLongTrailingStoped = True;
bShortTrailingStoped= False;
Return;}End
?
?來源:程序化99
-
文華技術人員:
?我們提供程序化軟件MQ,類似C語言的語法結構,兼容了您上面模型的語法,簡單修改后即可使用
您下載MQ試下,如果您不會改,我們再幫您分析下
MQ地址?https://mq.wenhua.com.cn/
?
?
?來源: m.kzuj.com.cn
-
文華客服:
?老師,復制到MQ還是不行,提示
文件名:sgz1g(od(zuhecco5}s4icc.png
?麻煩老師改為MQ可以用的
?
-
網友回復:
參考:
Params
? ? ? Numeric Length(40);
? ? ? Numeric NumATRs(1);
?Numeric Offset(1);
?Numeric ATRLength(10);
?Numeric TrailingStart(1);
?Numeric StopLossSet(4);
?Numeric TrailingStop(3);
Vars
? ? ? NumericSeries TPrice;
? ? ? Numeric AvgValue;
? ? ? NumericSeries ShiftValue;
? ? ? Numeric UpperBand;
? ? ? Numeric LowerBand;
? ? ? Numeric MyPrice;
?Numeric UpLine;
//上軌
?Numeric DownLine;
//下軌?
?NumericSeries MidLine;
//中間線
?Numeric Band;
?NumericSeries HigherAfterEntry;
?NumericSeries LowerAfterEntry;
?Numeric DayOpen;
?Numeric StopLine;
?NumericSeries bLongTrailingStoped;
? ? ? ?NumericSeries bShortTrailingStoped;
?Numeric MinPoint;
Begin
? ? ?MinPoint = MinMove*PriceScale;
? ? ?DayOpen=AvgEntryPrice;
TPrice=(High[1]+Low[1]+Close[1])/3;
? ? ?AvgValue=AverageFC(TPrice,Length);
? ? ?ShiftValue=NumATRs*AvgTrueRange(ATRLength);
? ? ?UpperBand=AvgValue+ShiftValue[1];
? ? ?LowerBand=AvgValue-ShiftValue[1];
MidLine = AverageFC(Close,Length);
Band = StandardDev(Close,Length,2);?
UpLine = MidLine + Offset * Band;
DownLine = MidLine - Offset * Band;?
?
If(BarStatus > 0)
{
bLongTrailingStoped = bLongTrailingStoped[1];
bShortTrailingStoped = bShortTrailingStoped[1];
}
//Commentary("bLTrue,"False"));
Commentary("bShortTrailingStoped="+IIFString(bShortTrailingStoped,"True","False"));
If(BarsSinceEntry==1)
{
? ? HigherAfterEntry=AvgEntryPrice;
? ? LowerAfterEntry=HigherAfterEntry;
}Else// If(BarsSinceEntry>1)
{
? ? ? ?HigherAfterEntry=max(HigherafterEntry[1],High[1]);
? ? ? ?LowerAfterEntry=min(LowerAfterEntry[1],Low[1]);
}
If(bLongTrailingStoped==0&& MarketPosition!=1&&High>=UpperBand)
? ?{
? ? ? MyPrice=UpperBand;
? ? ? If(Open>MyPrice)MyPrice=Open;
? ? ? Buy(1,MyPrice);
?bLongTrailingStoped=1;
?bShortTrailingStoped=0;
? ? ? Return;
? ?}
If(bShortTrailingStoped==0 && MarketPosition!=-1&&Low<=LowerBand)
{
? ? ?MyPrice=LowerBand;
? ? ?If(Open<MyPrice)MyPrice=Open;
? ? ?SellShort(1,MyPrice);?
bShortTrailingStoped=1;
bLongTrailingStoped=0;
? ? ?Return;
}
If(HigherAfterEntry>=AvgEntryPrice+DayOpen*TrailingStart*0.01&&MarketPosition==1)
{
? ? ? ?StopLine=HigherAfterEntry-DayOpen*TrailingStop*0.01;
}Else//止損
{
? ? ? ?StopLine=UpperBand-DayOpen*StopLossSet*0.01;
}
If(Low<=StopLine)
{
? ? ? ?MyPrice=StopLine;
? ? ? ?If(Open<MyPrice)MyPrice=Open;
? ? ? ?Sell(1,MyPrice);
? bLongTrailingStoped=1;
? bShortTrailingStoped=0;
? ? ? ?Return;
}
If(LowerAfterEntry<=AvgEntryPrice-DayOpen*TrailingStart*0.01&&MarketPosition==-1)
{
? ? ? ?StopLine=LowerAfterEntry+DayOpen*TrailingStop*0.01;
}Else//止損
{
? ? ? ?StopLine=LowerBand+DayOpen*StopLossSet*0.01;
}
If(High>=StopLine)
{
? ? ? ?MyPrice=StopLine;
? ? ? ?If(Open>MyPrice)MyPrice=Open;
? ? ? ?Buytocover(1,MyPrice);
bShortTrailingStoped=1;
bLongTrailingStoped=0;
? ? ? ?Return;
}
//再次入場的代碼
If(bLongTrailingStoped && MarketPosition==0 && High > HigherAfterEntry)
{
MyPrice = HigherAfterEntry + MinPoint;
If(Open > MyPrice) MyPrice = Open;
Buy(1,MyPrice);
bLongTrailingStoped = 0;
bShortTrailingStoped=1;
Return;
}
If(bShortTrailingStoped && MarketPosition==0 && Low < LowerAfterEntry)
{
MyPrice = LowerAfterEntry - MinPoint;
If(Open < MyPrice) MyPrice = Open;
SellShort(1,MyPrice);
bLongTrailingStoped = 1;
bShortTrailingStoped= 0;
Return;
}
End