全局變量寫法 在買多的情況下正確,賣空時(shí)錯(cuò)誤,請(qǐng)問(wèn)為什么 [開(kāi)拓者 TB]
- 咨詢內(nèi)容:
小米,求幫助!
我寫了段程序,想以 建倉(cāng)第二天的開(kāi)盤價(jià)為我的止盈止損參考價(jià)。
我以同樣的寫法在買多止盈止損上都沒(méi)有問(wèn)題,唯獨(dú)賣空止損總是 開(kāi)平倉(cāng)同時(shí)出現(xiàn), 明顯出現(xiàn)錯(cuò)誤。而且我也用過(guò)entryprice去代替 openafter, 所有的止損止盈都沒(méi)有問(wèn)題。
查了好久也沒(méi)有查到原因,請(qǐng)小米救救5555!
if (MACD<0)
sellshort(position,close);
if (GetGlobalVar(0)==InvalidNumeric) SetGlobalVar(0,0);
if (barssinceentry==1)
{
openafter=open;
SetGlobalVar(0,openafter); //設(shè)建倉(cāng)后第二天的開(kāi)盤價(jià)為openafter, 定義為全局變量。
}
else if (barssinceentry>=1)
openafter=GetGlobalVar(0);
If( barssinceentry <=1)
{
HighestAfterEntry = Close;
LowestAfterEntry = Close;
If(MarketPosition <> 0)
{
HighestAfterEntry = Max(HighestAfterEntry,openafter); // 開(kāi)倉(cāng)的Bar,將開(kāi)倉(cāng)價(jià)和當(dāng)時(shí)的收盤價(jià)的較大值保留到HighestAfterEntry
LowestAfterEntry = Min(LowestAfterEntry,openafter); // 開(kāi)倉(cāng)的Bar,將開(kāi)倉(cāng)價(jià)和當(dāng)時(shí)的收盤價(jià)的較小值保留到LowestAfterEntry
}
}else if (barssinceentry>1)
{
HighestAfterEntry = Max(HighestAfterEntry,High); // 記錄下當(dāng)前Bar的最高點(diǎn),用于下一個(gè)Bar的跟蹤止損判斷
LowestAfterEntry = Min(LowestAfterEntry,Low); // 記錄下當(dāng)前Bar的最低點(diǎn),用于下一個(gè)Bar的跟蹤止損判斷
}
if (MarketPosition==-1) //如空倉(cāng)
{
if ( high>= openafter*(1.05) and buytocovercondition1==false )
{ myexitprice= openafter*(1.05);
If( date<>entrydate and Open>MyExitPrice) MyExitPrice = Open;//挑空低開(kāi)就取開(kāi)盤價(jià)
BuyToCover(0, myexitprice);}
else if (buytocovercondition1)
{
BuyToCover(0,Open);
}
}
END - TB技術(shù)人員: 沒(méi)細(xì)看,開(kāi)倉(cāng)那個(gè)bar: LowestAfterEntry = Min(LowestAfterEntry,openafter);,openafter為0,lowestafterentry后面一直為0
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容