COCO研究院

 找回密碼
 註冊
搜索
查看: 2927|回復: 14

AFL 如何知在同一股已有BUY

[複製鏈接]
發表於 16-2-19 16:00 | 顯示全部樓層 |閱讀模式
AFL 如何知在同一股已有BUY過
發表於 16-2-21 20:05 | 顯示全部樓層
這位大德..您應該舉個例子.. 讓別人更了解您的問題..
發表於 16-2-22 09:37 | 顯示全部樓層
你是要用做實際交易用的吧
我的做法是寫一個設定檔
 樓主| 發表於 16-2-22 17:11 | 顯示全部樓層
e.g.
Buy = Close>MA(20) AND {未持有BUY過這股}
發表於 16-2-24 07:59 | 顯示全部樓層
本帖最後由 lwhuang 於 16-2-24 08:01 編輯

以下是用在實際交易中
如我前述,交易時你可以寫一個紀錄檔
  1. fw = fopen(name()+"_position", "w");
  2. if (fw)
  3. {
  4.   fputs(NumToStr(TargetPosition, 1.0, False), fw);
  5.                 fclose( fw );
  6. }
複製代碼

判斷時
  1. fr = fopen(name()+"_position", "r");
  2. if (fr)
  3. {
  4.         position=fgets(fr);
  5.         fclose(fr);
  6. }
  7. else
  8.         position=0;
複製代碼


另一招是用StaticVarSet persistent
交易時
  1. StaticVarSet(name()+"_position", targetposition, true);
複製代碼

檢查時
  1. position = StaticVarGet(Name()+"_position");
複製代碼


我比較喜歡寫檔的,因為可以自己開editor偷改,StativVarSet persistent也是寫檔,但是寫在ab的特有格式中,不好亂改,要寫程式改


評分

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

查看全部評分

 樓主| 發表於 16-2-24 20:45 | 顯示全部樓層
        position = StaticVarGet(Name()+"_position");
        Buy = Cross(Close,MA(20)) AND !position
        StaticVarSet(name()+"_position", Buy, true);

請問係咪咁?
發表於 16-2-25 08:23 | 顯示全部樓層
andrewhlleung 發表於 16-2-24 20:45
position = StaticVarGet(Name()+"_position");
        Buy = Cross(Close,MA(20)) AND !position
        StaticVarSet ...

那是粵式中文嗎?看不懂耶
簡體還看得懂,粵式中文完全看不懂
 樓主| 發表於 16-2-25 09:00 來自手機 | 顯示全部樓層
請問係咪咁? <————請問是否這樣寫?
發表於 16-2-25 11:00 | 顯示全部樓層

差不多就是這樣
第一次StaticVarGet可能需要initial value

 樓主| 發表於 16-2-25 15:11 | 顯示全部樓層
position = StaticVarGet(Name()+"_position");
Buy = Cross(Close,MA(Close,20)) AND !position;
Sell = Cross(MA(Close,20),Close) AND position;
StaticVarSet(name()+"_position", (Buy) AND (!Sell), true);
               
我這樣做. 但發現仍是不停同一隻股票買入.
發表於 16-2-26 10:09 | 顯示全部樓層
我前提是這是實際交易上用的,不是回測用的,你是在實際交易上這樣還是不行?
 樓主| 發表於 16-2-26 10:24 | 顯示全部樓層
明白, 我是用在SCAN.
 樓主| 發表於 16-2-26 10:24 | 顯示全部樓層
請問有無方法可以在SCAN時用?
發表於 16-2-27 00:15 | 顯示全部樓層
感覺你想做到的是移除多餘的買入/賣出訊號

如果是  可以用

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);

來清理excessive signals
發表於 16-3-31 19:53 | 顯示全部樓層
StaticVarSet(name()+"_position", (Buy) AND (!Sell), true);
change as below:
StaticVarSet(name()+"_position", iif(buy,1,iif(sell,-1,0)));
// then you will know last order status, if position not == 1, then to place buy order.
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 24-11-22 17:32

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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