來人啊,救命啊,幫我看看這些代碼實盤用行不行! [開拓者 TB]
- 咨詢內容:
本帖最后由 空空大師 于 2012-3-2 08:56 編輯
Vars
Numeric JC;
Numeric GDPJ;
Numeric KJZ;
Numeric RC;
Numeric RC1;
Numeric RC2;
Numeric MinPoint; // 一個最小變動單位,也就是一跳
Numeric MyEntryPrice; // 開倉價格,本例是開倉均價,也可根據需要設置為某次入場的價格
Numeric TrailingStart2(75); // 跟蹤止損啟動設置2
Numeric TrailingStop2(25); // 跟蹤止損設置2
Numeric StopLossSet(40); // 止損設置
Numeric MyExitPrice; // 平倉價格
NumericSeries HighestAfterEntry; // 開倉后出現的最高價
NumericSeries LowestAfterEntry; // 開倉后出現的最低價
Begin
...
...
If(CurrentTime()>0.091700 And CurrentTime()<0.150900 And CrossOver(JC,RC1))
{
Buy(1,Q_AskPrice());
}
If(CurrentTime()>0.091700 And CurrentTime()<0.150900 And CrossUnder(JC,RC2))
{
SellShort(1,Q_BidPrice());
}
If(BarsSinceentry == 0)
{
HighestAfterEntry = Close;
LowestAfterEntry = Close;
If(MarketPosition <> 0)
{
HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);
// 開倉的Bar,將開倉價和當時的收盤價的較大值保留到HighestAfterEntry
LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);
// 開倉的Bar,將開倉價和當時的收盤價的較小值保留到LowestAfterEntry
}
}else
{
HighestAfterEntry = Max(HighestAfterEntry,High);
// 記錄下當前Bar的最高點,用于下一個Bar的跟蹤止損判斷
LowestAfterEntry = Min(LowestAfterEntry,Low);
// 記錄下當前Bar的最低點,用于下一個Bar的跟蹤止損判斷
}
MinPoint = MinMove*PriceScale;
MyEntryPrice = AvgEntryPrice;
If(MarketPosition==1) // 有多倉的情況
{
If(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart2*MinPoint)
// 跟蹤止損的條件表達式
{
If(Low <= HighestAfterEntry[1] - TrailingStop2*MinPoint)
{
MyExitPrice = HighestAfterEntry[1] - TrailingStop2*MinPoint;
If(Open < MyExitPrice)
MyExitPrice = Open;
// 如果該Bar開盤價有跳空觸發,則用開盤價代替
Sell(1,MyExitPrice);
}
}else if(Low <= MyEntryPrice - StopLossSet*MinPoint)
//的止損處理
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
If(Open < MyExitPrice) MyExitPrice = Open;
// 如果該Bar開盤價有跳空觸發,則用開盤價代替
Sell(1,MyExitPrice);
}
}else if(MarketPosition==-1) // 有空倉的情況
{
If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart2*MinPoint) // 跟蹤止損的條件表達式
{
If(High >= LowestAfterEntry[1] + TrailingStop2*MinPoint)
{
MyExitPrice = LowestAfterEntry[1] + TrailingStop2*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果該Bar開盤價有跳空觸發,則用開盤價代替
BuyToCover(1,MyExitPrice);
}
}else If(High >= MyEntryPrice + StopLossSet*MinPoint)//可以在這里寫上初始的止損處理
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open; // 如果該Bar開盤價有跳空觸發,則用開盤價代替
BuyToCover(0,MyExitPrice);
}
}
If(CurrentTime()>0.150900 And MarketPosition <> 0)
{
Sell(1,0);
BuyToCover(1,0);
}
End斑斑、管理員,救命啊,謝謝啊!
- TB技術人員:
1.請問,0.090000的表達以軟件時間和計算機系統時間中的哪個時間為準?
2.不成交的委托單軟件如何處理?撤單如何編寫?追價如何編寫?
3.會不會有重復委托的情況?如何處理?
4.如果使用交易助手,成交單會反映至策略嗎?
謝謝! - TB客服:
1.公式里所用到的currenttime是計算機系統時,
2.可以使用“交易助手”,配合完成未成交的撤單再重發的動作,
3.會有信號消失的可能性,建議修 改公式
4.不會。 - 網友回復:
1.公式里所用到的currenttime是計算機系統時,
2.可以使用“交易助手”,配合完成未成交的撤單再重發的動作 ...
小米 發表于 2012-3-2 10:21
謝謝,那一樓的代碼實盤的話會有問題嗎?會不會有重復委托的情況?
謝謝! - 網友回復:
1.公式里所用到的currenttime是計算機系統時,
2.可以使用“交易助手”,配合完成未成交的撤單再重發的動作 ...
小米 發表于 2012-3-2 10:21
撤單如何編寫?追價如何編寫?謝謝
如果以上指標公式不適用于您常用的行情軟件
或者您想改編成選股公式,以便快速選出某種形態個股的話,
相關文章
-
沒有相關內容