BUY之後十日 SELL
請問點寫?priceatbuy=0;
for( i = 0; i < BarCount; i++ )
{
if( priceatbuy == 0 && Buy[ i ] )
priceatbuy = BuyPrice[ i ];
if( priceatbuy > 0 && BUY之後十日 )
{
Sell[ i ] = 1;
SellPrice[ i ] = 1.1 * priceatbuy;
priceatbuy = 0;
}else {
Sell[ i ] = 0;
}
}
要在day 的 timeframe中
Ref(Buy, -10); 不知道你這裡10日Sell是指10天後(不管是不是交易日都算), 還是指10個交易日後?
我想你應該是想在10天後的同一個時點的K棒才做Sell
兩種我合併在一起提供你範例
你自己再選擇囉
nDayPass = 10;
nDateAtSell = 0;
nDayCountAtBuy = 0;
nTodayBarIndexAtBuy = -1;
vDateNumCompare = (DateNum() != Ref(DateNum(), -1));
vDateNumCompare = True;
vTodayBarIndex = BarsSince(vDateNumCompare);
vDateTime = DateTime();
vTargetDateTime = DateTimeAdd(vDateTime, nDayPass, inDaily);
for(i = 0;i < BarCount;i++)
{
if(Buy == True)
{
nDateAtSell = vTargetDateTime;
nDayCountAtBuy = 0;
nTodayBarIndexAtBuy = vTodayBarIndex;
}
//這一個Sell是發生在買之後的第10天同一個時點的K棒, 但要注意如果不是交易日則不會發生Sell
if(vDateTime == nDateAtSell)
{
Sell = True;
nDateAtSell = 0;
}
//這一個Sell是發生在買之後的第10個交易日同一個時點的K棒, 但要注意如果在下午1:30後買的, 第10個交易日若為期指結算日那也不會發生Sell, 結算只到1:30
if(nDayCountAtBuy == nDayPass AND vTodayBarIndex == nTodayBarIndexAtBuy)
{
Sell = True;
nDayCountAtBuy = 0;
nTodayBarIndexAtBuy = -1;
}
if(vDateNumCompare == True)
{
nDayCountAtBuy++;
}
}
謝幫忙
THX
另外用這BACKTEST CODE時LOOP緊可以攞到 CLOSE<MA(20) 嗎
我想加條CONDITION, 如CLOSE<MA(20) 都SELL走. 看不懂你的問題...什麼叫"LOOP緊可以攞到"?
如果你要在loop檢查是否Close < MA(Close, 20)
那可以在loop外先得到vConditon1
vCondition1 = Close < MA(Close, 20);
然後在loop內使用判斷式來檢查是否要Sell
if(vCondition1)
明白了. 在上面製造一個ARRAY, 再LOOP 時使用作CONDITION.
謝
頁:
[1]