COCO研究院

 找回密碼
 註冊
搜索
查看: 3030|回復: 10

請問買賣條件衝突問題

[複製鏈接]
發表於 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要怎麼寫才能從一開始買進訊號成立後到出場前之間都不理會再次的買進條件?

謝謝
發表於 14-11-14 19:51 | 顯示全部樓層
it is wrong to use BarsSince( buy)  as n-bar stop!
Use applystop
  1. buy = close> Ref (close, -1);
  2. buyprice = O;

  3. Sell = 0;
  4. sellprice = C;

  5. //sell 5 bars after purchase
  6. ApplyStop( stopTypeNBar, stopModeBars, bars = 5, priority = true, volatile = False, reentrydelay = 0 );
複製代碼

評分

參與人數 2金錢 +4 收起 理由
lwhuang + 2 太強了
nsmvjmsojki + 2 Thanks a lot for your sharing !

查看全部評分

發表於 14-11-14 20:03 | 顯示全部樓層
As for Applystop read here
http://www.amibroker.com/guide/afl/applystop.html

Also read comment section

評分

參與人數 1金錢 +2 收起 理由
nsmvjmsojki + 2 感謝分享

查看全部評分

發表於 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 ... in-the-price-chart/

評分

參與人數 1金錢 +2 收起 理由
nsmvjmsojki + 2 按一個讚

查看全部評分

發表於 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,這樣就無法進多單買進了,
不曉得該怎麼寫比較好呢?

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


謝謝
發表於 14-11-28 11:39 | 顯示全部樓層
joshsmi 發表於 14-11-14 20:03
As for Applystop read here
http://www.amibroker.com/guide/afl/applystop.html

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


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


發表於 14-11-28 12:54 | 顯示全部樓層
lwhuang 發表於 14-11-28 11:39
請教joshsmi大
ApplyStop會回傳一個array嗎?
例如我用sell array來控制下單

這個測試起來好像不會回傳Array
只是回測方便而已
發表於 14-11-29 04:07 | 顯示全部樓層
lwhuang 發表於 14-11-28 11:39
請教joshsmi大
ApplyStop會回傳一個array嗎?
例如我用sell array來控制下單

Do you mean how to plot arrows?

發表於 14-11-29 07:38 | 顯示全部樓層
本帖最後由 lwhuang 於 14-11-29 07:44 編輯
joshsmi 發表於 14-11-29 04:07
Do you mean how to plot arrows?

我要知道ApplyStop的結果,跟著這個結果做相應的事
  1. if (ApplyStopResult==1)
  2.    closepositionAPI()
複製代碼


發表於 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 ...
  1. nBarStopCheck = Sell == 5;
複製代碼

評分

參與人數 1金錢 +2 收起 理由
lwhuang + 2 小子駑頓,看不懂

查看全部評分

發表於 14-12-1 10:30 | 顯示全部樓層
joshsmi 發表於 14-11-29 08:00
See Applystop web link above

1 - regular exit

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

以下是緊跟著sell array的動作
  1. sell=Cross(C, 123);
複製代碼

那麼我可以得到一個sell陣列,來檢查要不要下單
  1. if (LastValue(Sell))
  2.         DoMySell();
複製代碼


評分

參與人數 1金錢 +1 收起 理由
IBM2012 + 1 以前在RT用ApplyStop發現只是笑話一則,有空.

查看全部評分

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-23 00:40

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |