全局變量寫法 在買多的情況下正確,賣空時(shí)錯(cuò)誤,請(qǐng)問為什么 [開拓者 TB]
- 咨詢內(nèi)容:
小米,求幫助!
我寫了段程序,想以 建倉第二天的開盤價(jià)為我的止盈止損參考價(jià)。
我以同樣的寫法在買多止盈止損上都沒有問題,唯獨(dú)賣空止損總是 開平倉同時(shí)出現(xiàn), 明顯出現(xiàn)錯(cuò)誤。而且我也用過entryprice去代替 openafter, 所有的止損止盈都沒有問題。
查了好久也沒有查到原因,請(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è)建倉后第二天的開盤價(jià)為openafter, 定義為全局變量。
}
else if (barssinceentry>=1)
openafter=GetGlobalVar(0);
If( barssinceentry <=1)
{
HighestAfterEntry = Close;
LowestAfterEntry = Close;
If(MarketPosition <> 0)
{
HighestAfterEntry = Max(HighestAfterEntry,openafter); // 開倉的Bar,將開倉價(jià)和當(dāng)時(shí)的收盤價(jià)的較大值保留到HighestAfterEntry
LowestAfterEntry = Min(LowestAfterEntry,openafter); // 開倉的Bar,將開倉價(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) //如空倉
{
if ( high>= openafter*(1.05) and buytocovercondition1==false )
{ myexitprice= openafter*(1.05);
If( date<>entrydate and Open>MyExitPrice) MyExitPrice = Open;//挑空低開就取開盤價(jià)
BuyToCover(0, myexitprice);}
else if (buytocovercondition1)
{
BuyToCover(0,Open);
}
}
END - TB技術(shù)人員: 沒細(xì)看,開倉那個(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)文章
-
沒有相關(guān)內(nèi)容