請(qǐng)版主老師幫忙看看問(wèn)題何在 [開(kāi)拓者 TB]
- 咨詢內(nèi)容:
本帖最后由 torowills 于 2013-12-5 18:53 編輯
Params
BOOL lastprofitabletradefilter(True);
Vars
NumericSeries ma1;
NumericSeries ma2;
boolSeries lastbuy(false);
boolSeries lastsell(false);
NumericSeries takeprofitset(10);
Numeric myentryprice;
Numeric myexitprice;
Numeric minpoint;
Begin
If(barstatus==0)
{
lastbuy=true;
lastsell=true;
}
Commentary("lastbuy="+iifstring(lastbuy,"true","False"));
Commentary("lastsell="+iifstring(lastsell,"true","False"));
minpoint=MinMove*PriceScale;
ma1=AverageFC(close,5);
PlotNumeric("MA1",ma1);
ma2=AverageFC(close,10);
PlotNumeric("MA2",ma2);
If(marketposition==0)
{ If(CrossOver(ma1[1],ma2[1]) && ((!lastprofitabletradefilter)or(lastbuy)))
{Buy(1,open);
lastbuy=False;
lastsell=true;
MyEntryPrice=open;}
if(crossunder(ma1[1],ma2[1]) && ((!lastprofitabletradefilter)or(lastsell)))
{SellShort(1,open);
lastsell=false;
lastbuy=True;
MyEntryPrice=open;}
}
if(marketposition==1)
{ if(high>=myentryprice+TakeProfitSet*minpoint)
{ myexitprice=myentryprice+TakeProfitSet*minpoint;
If(Open > MyExitPrice)
{MyExitPrice = Open;
Sell(0,MyExitPrice);
lastbuy=False;
lastsell=true;}
}else
{
if(CrossUnder(ma1[1],ma2[1]))
{Sell(0,open);
lastbuy=False;
lastsell=true;}
}
}
else if(marketposition==-1 )
{ If(Low <= MyEntryPrice - TakeProfitSet*MinPoint)
{ MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint;
If(Open < MyExitPrice)
{MyExitPrice = Open;
BuyToCover(0,MyExitPrice);
lastsell=false;
lastbuy=True;}
}else
{
if(CrossOver(ma1[1],ma2[1]))
{BuyToCover(0,open);
lastsell=false;
lastbuy=True;}
}
}
End
希望達(dá)到的效果是,5分鐘K線情況下,
5均線上穿10均線,開(kāi)多,10跳止盈,(開(kāi)倉(cāng)后若下穿止損)。不管是止盈還是止損,不再開(kāi)多,坐等開(kāi)空
5均線下穿10均線,開(kāi)空,10跳止盈,(開(kāi)倉(cāng)后若上穿止損)。不管是止盈還是止損,不再開(kāi)空,坐等開(kāi)多
請(qǐng)老師幫忙看看這模型編寫(xiě)上有沒(méi)有什么問(wèn)題,個(gè)人發(fā)現(xiàn)的問(wèn)題如下,請(qǐng)老師幫忙修改
存在幾個(gè)問(wèn)題:
1,編譯的時(shí)候跳出來(lái)4個(gè)邏輯錯(cuò)誤,
2,回溯:舉了能看得見(jiàn)的例子IF1312,12月3號(hào)15.00開(kāi)空,為什么在9.15分滿足了10跳的利潤(rùn),為什么它沒(méi)止盈,反而到了9.35去止損了?
3, 回溯:舉了能看得見(jiàn)的例子IF1312, 12月4號(hào)9.35 明顯5均線上穿10均線,為什么沒(méi)開(kāi)多?
本人新人再次希望得到老師的幫助與提點(diǎn)
- TB技術(shù)人員:
本帖最后由 jerrywind 于 2013-12-5 16:39 編輯
1,編譯的時(shí)候跳出來(lái)4個(gè)邏輯錯(cuò)誤
>>>>>這個(gè)只是警告信息,不是錯(cuò)誤信息,可以忽略;
if(high>=myentryprice+TakeProfitSet*minpoint)
>>>>>myentryprice<-該變量在沒(méi)有被賦值的情況下就被使用了,即該值為0,所以似乎止盈的情況從未被觸發(fā);做空時(shí)也是一樣的;
lastbuy和lastsell
>>>>>這兩個(gè)變量聲明成了數(shù)組,就是說(shuō)在開(kāi)倉(cāng)后想保存是否可以再開(kāi)多或者空的標(biāo)志(想用在 不管是止盈還是止損,不再開(kāi)多/空,坐等開(kāi)空/多),但是并沒(méi)有被用到過(guò),例如lastbuy[1];所以這兩個(gè)變量根本沒(méi)有起到數(shù)組的作用;
是想表達(dá)如下的意思嗎?
/*lastbuy=True;
lastsell=true;
*/
if (not (lastbuy || lastsell)) {//說(shuō)明之前還從沒(méi)有產(chǎn)生過(guò)開(kāi)倉(cāng)信號(hào)
lastbuy=True;
lastsell=true;
} else {
lastbuy=lastbuy[1];
lastsell=lastsell[1];
}
NumericSeries takeprofitset(10);
>>>>> 聲明這個(gè)數(shù)組變量的意思是?是否是想聲明一個(gè)代表10個(gè)跳的變量?-----> Numeric takeprofitset(10);?
問(wèn)題挺多的,沒(méi)法改,修改的量和重新編碼差不多,再仔細(xì)琢磨琢磨吧。 - TB客服:
if(high>=myentryprice+TakeProfitSet*minpoint)
>>>>>myentryprice<-該變量在沒(méi)有被賦值的情況下就被使用了,即該值為0,所以似乎止盈的情況從未被觸發(fā);做空時(shí)也是一樣的;-------------原文中的表達(dá)已經(jīng)做了修正,確實(shí)漏了
lastbuy和lastsell 抄襲了海龜中的 :
boolseries prebreakoutlaiure(false) 以及長(zhǎng)周期的開(kāi)倉(cāng) if(marketposion==0 && ((lastprofitabletradefilter)or (prebreakoutfailure)))
希望在lastbuy在等于true的時(shí)候才去開(kāi)多。
NumericSeries takeprofitset(10);
>>>>> 聲明這個(gè)數(shù)組變量的意思是?是否是想聲明一個(gè)代表10個(gè)跳的變量?-----> Numeric takeprofitset(10);?-------------這是從“交易策略進(jìn)階”中直接抄襲下來(lái)的
不過(guò)好像抄襲的出問(wèn)題了,依舊不是很明白,問(wèn)題出在了哪
- 網(wǎng)友回復(fù):
文華的麥語(yǔ)言我也試過(guò)了,不過(guò)總覺(jué)得沒(méi)有TB的適合個(gè)人,不過(guò)文華有人會(huì)出來(lái)幫大家解決問(wèn)題,管理員們,我想你們上班一定也很辛苦,但好歹出來(lái)幫助一下像我這樣不是非常精通TB的人,畢竟TB要做的更大更好,需要更多的人,金字塔沒(méi)有了基層漲不高。我希望用TB做交易,為此做好了所有的準(zhǔn)備,只差策略代碼化,再次希望得到大家和管理員的幫助,謝謝
- 網(wǎng)友回復(fù):
望老師指點(diǎn)
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫(xiě)!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容