nsmvjmsojki 發表於 14-11-10 15:23

請問買賣條件衝突問題

本帖最後由 nsmvjmsojki 於 14-11-10 15:54 編輯

請教各位先進:

舉例來說,若今天收盤價大於昨天收盤價做為買進條件且成立後,
賣出條件若為5天後的收盤價賣出,
但我碰到的問題是在這五天內買進訊號又再度成立,出場就又往後延五天,
ex:
buy = close > Ref(close, -1);
buyprice = O;
sell = barssince(buy) >= 5;
sellprice = C;
如果一直在五天內都有買進訊號成立,那出場訊號就會一直往後延,
不曉得AFL要怎麼寫才能從一開始買進訊號成立後到出場前之間都不理會再次的買進條件?

謝謝

joshsmi 發表於 14-11-14 19:51

it is wrong to use BarsSince( buy)as n-bar stop!
Use applystopbuy = close> Ref (close, -1);
buyprice = O;

Sell = 0;
sellprice = C;

//sell 5 bars after purchase
ApplyStop( stopTypeNBar, stopModeBars, bars = 5, priority = true, volatile = False, reentrydelay = 0 );

joshsmi 發表於 14-11-14 20:03

As for Applystop read here
http://www.amibroker.com/guide/afl/applystop.html

Also read comment section

joshsmi 發表於 14-11-14 20:06

Besides you can create any fancy custom stop not being covered by Applystop via loop

Example
http://www.amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart/

張卡 發表於 14-11-28 11:26

藉標題一問
請問各位先進,
假設一個振盪指標有很多buy & short訊號,
那我希望買進後一直等到移動停利後才接受空單訊號(買進期間不接受賣空訊號),
反之亦然,

原本我是寫這樣
Buy = buycondition; //oscillated signal cross over, buy condition
Sell = C < LLV(L, 5); //sell condition
Short = shortcondition; //short condition
Cover = C > HHV(H, 5); //cover condition
可是這樣會變成還沒點到移動停利就會進空單

我把它改成
BuyTrigger = flip(buycondition, sellcondition);
ShortTrigger = flip(shortcondition, covercondition);
Buy = buycondition AND ShortTrigger == 0;
Sell = C < LLV(L, 5);
Short = shortcondition AND BuyTrigger == 0;
Cover = C > HHV(H, 5);
但又會碰到雖然當買進訊號成立後一直到移動停利都不會有賣出訊號出現,
可是當空手時要接受下一個買進訊號時,
可能前一個沒有成立的賣空訊號,它的移動停利還沒達到,
導致ShortTrigger ==1,這樣就無法進多單買進了,
不曉得該怎麼寫比較好呢?

目的是希望買進後一直到停損或停利後才接受下一個買進或賣空訊號
而賣空後一直到停損或停利才接受下一個買進或賣空訊號


謝謝

lwhuang 發表於 14-11-28 11:39

joshsmi 發表於 14-11-14 20:03 static/image/common/back.gif
As for Applystop read here
http://www.amibroker.com/guide/afl/applystop.html



請教joshsmi大
ApplyStop會回傳一個array嗎?
例如我用sell array來控制下單
if (Sell)
DoOrder(...)

那我用ApplyStop要如何得到訊號呢?


張卡 發表於 14-11-28 12:54

lwhuang 發表於 14-11-28 11:39 static/image/common/back.gif
請教joshsmi大
ApplyStop會回傳一個array嗎?
例如我用sell array來控制下單


這個測試起來好像不會回傳Array
只是回測方便而已

joshsmi 發表於 14-11-29 04:07

lwhuang 發表於 14-11-28 11:39 static/image/common/back.gif
請教joshsmi大
ApplyStop會回傳一個array嗎?
例如我用sell array來控制下單


Do you mean how to plot arrows?

lwhuang 發表於 14-11-29 07:38

本帖最後由 lwhuang 於 14-11-29 07:44 編輯

joshsmi 發表於 14-11-29 04:07 static/image/common/back.gif
Do you mean how to plot arrows?
我要知道ApplyStop的結果,跟著這個結果做相應的事
if (ApplyStopResult==1)
   closepositionAPI()

joshsmi 發表於 14-11-29 08:00

See Applystop web link above

1 - regular exit
2 - max. loss
3 - profit target
4 - trailing
5 - n-bar stop
6 - ruin stop


So ...nBarStopCheck = Sell == 5;

lwhuang 發表於 14-12-1 10:30

joshsmi 發表於 14-11-29 08:00 static/image/common/back.gif
See Applystop web link above

1 - regular exit


看不懂耶,請再指點
我想要做的是回測結果用在即時交易
若回測要用到ApplyStop,那麼即時交易也要用,在下單時會叫用外部程式,非AFL內建function(自己寫的),那麼我要如何緊跟著ApplyStop的動作呢?

以下是緊跟著sell array的動作
sell=Cross(C, 123);
那麼我可以得到一個sell陣列,來檢查要不要下單
if (LastValue(Sell))
        DoMySell();

頁: [1]
查看完整版本: 請問買賣條件衝突問題