求助,一個簡單的程序,請教高手指出問題所在 - TradeBlazer公式 [開拓者 TB]
- 咨詢內容:
今日價格突破前一日最高價,則買入開倉一手;價格跌破前一日最低價,賣出開倉一手。止損為開倉價回撤5個點(股指期貨),否則收盤時以收盤價平倉。
Params
Numeric StopLossSet(25);
Vars
Bool Condition1;
Bool Condition2;
Numeric MinPoint;
Numeric MyEntryPrice;
Numeric MyExitPrice;
NumericSeries HighD(0);
NumericSeries LowD(0);
Numeric price1;
Numeric price2;
Begin
MinPoint = MinMove*PriceScale;
Condition1 = HighD>HighD[1];
Condition2 = LowD <LowD[1];
if (Condition1) Price1=HighD;
{
Buy(1,Price1);
}
if (Condition2) Price2=LowD;
{
SellShort(1,Price2);
}
If(MarketPosition==1)
if(Low <= MyEntryPrice - StopLossSet*MinPoint)
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
Sell(0,MyExitPrice);
}Else Sell(0,CloseD(0));
if(MarketPosition==-1)
if(High >= MyEntryPrice + StopLossSet*MinPoint)
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
BuyToCover(0,MyExitPrice);
}Else BuyToCover(0,CloseD(0));
End - TB技術人員:
Params
Numeric StopLossSet(25);
Vars
Bool Condition1;
Bool Condition2;
Numeric MinPoint;
Numeric MyEntryPrice;
Numeric MyExitPrice;
NumericSeries HighD(0);
NumericSeries LowD(0);
Numeric price1;
Numeric price2;
Begin
MinPoint = MinMove*PriceScale;
Condition1 = HighD>HighD[1];
Condition2 = LowD <LowD[1];
if (Condition1) Price1=HighD;
{
Buy(1,Price1);
}最好判斷持倉情況,不然有可能不停開倉, Price1=HighD也應該放在花括號內,還有,這個價格不一定能成交
if (Condition2) Price2=LowD;
{
SellShort(1,Price2);
}
If(MarketPosition==1)
if(Low <= MyEntryPrice - StopLossSet*MinPoint)
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
Sell(0,MyExitPrice)可能不成交;
}Else Sell(0,CloseD(0))都收盤了,還能交易?只能用來歷史測試;
if(MarketPosition==-1)
if(High >= MyEntryPrice + StopLossSet*MinPoint)
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
BuyToCover(0,MyExitPrice);
}Else BuyToCover(0,CloseD(0));
End
這玩意不能用。。。 - TB客服:
回復 2# edwardzhangxu
現在還處在學習編程的初級階段,離應用還遠著的。問題還很多,在1分鐘線上測試出來是每分鐘都有開倉平倉。第二個問題關于收盤的如何修改成以15:14分價格成交? - 網友回復:
本帖最后由 飛躍 于 2012-2-29 20:43 編輯
由于手頭沒有TB軟件,臨時發一個修改好的,可能中間有些不太合適,可以在調整下。
Params
Numeric StopLossSet(0.5);
Vars
Bool Condition1;
Bool Condition2;
Numeric MinPoint;
Numeric MyEntryPrice;
Numeric StopLine;
NumericSeries HigherAfterEntry;
NumericSeries LowerAfterEntry;
NumericSeries PreEntryPrice;
NumericSeries DayOpen;
NumericSeries HighDD(0);
NumericSeries LowDD(0);
Numeric MyExitPrice;
BoolSeries bLongStoped;
BoolSeries bShortStoped;
Begin
MinPoint = MinMove*PriceScale;
HighDD = HighD(1);
LowDD = LowD(1);
PlotNumeric("HighDD",HighDD);
PlotNumeric("LowDD",LowDD);
Condition1 = High >HighDD;
Condition2 = Low <LowDD;
Commentary("Condition1="+IIFString(Condition1,"True","False"));
Commentary("Condition2="+IIFString(Condition2,"True","False"));
If(CurrentBar==0 || Date!=Date[1])
{
bLongStoped = False;
bShortStoped = False;
}Else
{
bLongStoped = bLongStoped[1];
bShortStoped = bShortStoped[1];
}
if(MarketPosition == 0 && Condition1 && bLongStoped==False && Time < 0.1455)
{
MyEntryPrice = HighDD + MinPoint;
if(Open > HighDD)
MyEntryPrice = Open;
Buy(1,MyEntryPrice);
bLongStoped==False;
}
if(MarketPosition == 0 && Condition2 && bShortStoped == False && Time < 0.1455)
{
MyEntryPrice = LowDD - MinPoint;
If(Open < LowDD)
MyEntryPrice = Open;
SellShort(1,MyEntryPrice);
bShortStoped = False;
}
If(MarketPosition==1 && Low <= MyEntryPrice - StopLossSet*MinPoint)
{
MyExitPrice = PreEntryPrice - StopLossSet*MinPoint;
If(Open < MyExitPrice)
MyExitPrice = Open;
Sell(0,MyExitPrice);
bLongStoped==True;
}Else
if(MarketPosition==-1 && High >= MyEntryPrice + StopLossSet*MinPoint )
{
MyExitPrice = PreEntryPrice + StopLossSet*MinPoint;
if(Open > MyExitPrice)
MyExitPrice = Open;
BuyToCover(0,MyExitPrice);
bShortStoped = True;
}
if(Time >= 0.1455)
{
BuyToCover(0,Open);
Sell(0,Open);
}
End - 網友回復:
你這個還可以把開倉的線畫出來,也應該加一個止盈的策略,呵呵
相關文章
-
沒有相關內容