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