COCO研究院

 找回密碼
 註冊
搜索
查看: 3540|回復: 12

每天SIGNAL的獨立

[複製鏈接]
發表於 12-9-5 10:22 | 顯示全部樓層 |閱讀模式
2012_9_5_10_9_11___5.jpg

左面黑色是9月4日的圖, 入面有一個SELL SIGNAL, 由於我用了語法
Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
所以就算9月5日(右面紅色)的SELL SIGNAL條件符合, 也沒有SELL SIGNAL, 請問如何把每天的SIGNAL 獨立, 請各位大大多多指教, 謝謝!!

發表於 12-9-5 15:04 | 顯示全部樓層
當沖嗎?是不是在收盤前平倉隔日做會產生新的賣初訊訊號。還是留倉呢?隔日加碼一口?
 樓主| 發表於 12-9-5 17:09 | 顯示全部樓層
例如:
SELL SIGNAL的條件為5MIN MACD CROSS DOWN + 10MIN MACD CROSS DOWN
9月4日下午15:40出了SELL SIGNAL,直到16:15收巿5MIN 和10MIN MACD也是CROSS DOWN
9月5日早上開巿有下跌裂口, 所以5MIN 和10MIN MACD 也是CROSS DOWN, 我想在9月5日開巿那一刻也出SELL SIGNAL, 無視以下語法
Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
發表於 12-9-5 19:26 | 顯示全部樓層
keithlsp 發表於 12-9-5 17:09
例如:
SELL SIGNAL的條件為5MIN MACD CROSS DOWN + 10MIN MACD CROSS DOWN
9月4日下午15:40出了SELL SIGNAL ...

無關下單口數,僅就視覺效果之要求囉?

 樓主| 發表於 12-9-6 01:12 | 顯示全部樓層
是啊, 就是這樣
發表於 12-9-6 20:27 | 顯示全部樓層
再加入下列方式
1. 判斷前一個訊號出現日期,BarsSince
2. 判斷換日,Day() != Ref( Day(), -1 )
3. 多一組 PlotShapes
應該可以達到你的需求 ~ 參考看看囉
 樓主| 發表於 12-9-7 12:59 | 顯示全部樓層
多謝enochyu指教, 但我還是不太明白Array的運作

BB =BarsSince(Buy);
TB=BarsSince(Day()!=Ref(Day(),-1));

SS=BB>TB;
_TRACE("STAT:"+SS); //Result "STAT:1"
if(SS) //ERROR!! 為什麼不能這樣
{
   //do something
}
發表於 12-9-7 23:38 | 顯示全部樓層
本帖最後由 enochyu 於 12-9-8 00:43 編輯
keithlsp 發表於 12-9-7 12:59
多謝enochyu指教, 但我還是不太明白Array的運作

BB =BarsSince(Buy);


小範例,參考看看


  1. //
  2. // set chart, title style
  3. //
  4. SetChartOptions( 0, chartShowArrows | chartShowDates | chartWrapTitle );
  5. _N(  Title = StrFormat( "{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) );
  6. //
  7. // define parameter
  8. //
  9. _DateLine = Day() != Ref( Day(), -1 );
  10. _FMA      = MA( Close, 15 );
  11. _SMA      = MA( Close, 45 );
  12. Buy       = _FMA > _SMA;
  13. Sell      = _FMA <= _SMA;
  14. //
  15. // draw day end line
  16. //
  17. Plot( _DateLine
  18.       , ""
  19.       , ColorRGB( 50, 50, 50 )
  20.       , styleHistogram | styleOwnScale
  21.       , 0
  22.       , 1 );
  23. //
  24. // draw ma line
  25. //
  26. Plot( _FMA
  27.       , "FMA"
  28.       , colorYellow
  29.       , styleLine );
  30. Plot( _SMA
  31.       , "SMA"
  32.       , colorBlue
  33.       , styleLine );
  34. //
  35. // draw buy, sell shapes
  36. //
  37. PlotShapes( ExRem( Buy, Sell ) * shapeUpArrow
  38.             + ExRem( Sell, Buy ) * shapeDownArrow
  39.             , IIf( Buy, colorYellow, colorBlue )
  40.             , 0
  41.             , IIf( Buy, Low, High )
  42.             , -40 );
  43. //
  44. // draw candle line
  45. //
  46. Plot( C
  47.       , "Close"
  48.       , ParamColor( "Color", colorBlack )
  49.       , styleNoTitle | ParamStyle( "Style" ) | GetPriceStyle() );
複製代碼
圖例
01.png

------
加入 Line 9, 39, 40 行程式碼,我想應該就是你要的效果
  1. //
  2. // set chart, title style
  3. //
  4. SetChartOptions( 0, chartShowArrows | chartShowDates | chartWrapTitle );
  5. _N(  Title = StrFormat( "{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) );
  6. //
  7. // define parameter
  8. //
  9. _DateLine = Day() != Ref( Day(), -1 );
  10. _FMA      = MA( Close, 15 );
  11. _SMA      = MA( Close, 45 );
  12. Buy       = _FMA > _SMA;
  13. Sell      = _FMA <= _SMA;
  14. //
  15. // draw day end line
  16. //
  17. Plot( _DateLine
  18.       , ""
  19.       , ColorRGB( 50, 50, 50 )
  20.       , styleHistogram | styleOwnScale
  21.       , 0
  22.       , 1 );
  23. //
  24. // draw ma line
  25. //
  26. Plot( _FMA
  27.       , "FMA"
  28.       , colorYellow
  29.       , styleLine );
  30. Plot( _SMA
  31.       , "SMA"
  32.       , colorBlue
  33.       , styleLine );
  34. //
  35. // draw buy, sell shapes
  36. //
  37. PlotShapes( ExRem( Buy, Sell ) * shapeUpArrow
  38.             + ExRem( Sell, Buy ) * shapeDownArrow
  39.             + Buy * _DateLine * shapeUpArrow
  40.             + Sell * _DateLine * shapeDownArrow
  41.             , IIf( Buy, colorYellow, colorBlue )
  42.             , 0
  43.             , IIf( Buy, Low, High )
  44.             , -40 );
  45. //
  46. // draw candle line
  47. //
  48. Plot( C
  49.       , "Close"
  50.       , ParamColor( "Color", colorBlack )
  51.       , styleNoTitle | ParamStyle( "Style" ) | GetPriceStyle() );
複製代碼
圖例
02.png
發表於 12-9-8 00:23 | 顯示全部樓層
enochyu 大真的是 AB 神人~~~
發表於 12-9-8 00:48 | 顯示全部樓層
kilroy 發表於 12-9-8 00:23
enochyu 大真的是 AB 神人~~~

kilroy大,客氣啦 ~ 各位高手都潛水去了,就由小弟代勞

真的很高興又多了一位 AmiBroker 的同好
 樓主| 發表於 12-9-8 02:43 | 顯示全部樓層
本帖最後由 keithlsp 於 12-9-8 02:45 編輯

enochyu大大的答覆令我很感動, 從中學到很多AFL的技巧

PlotShapes( ExRem( Buy, Sell ) * shapeUpArrow
            + ExRem( Sell, Buy ) * shapeDownArrow
            + Buy * _DateLine * shapeUpArrow
            + Sell * _DateLine * shapeDownArrow
            , IIf( Buy, colorYellow, colorBlue )
            , 0
            , IIf( Buy, Low, High )
            , -40 );

這句的意義我明白了, 就以BUY 為例子:
不會重覆的BUY SIGNAL* shapeUpArrow , BUY SIGNAL 出現在_DRAWLINE* shapeUpArrow......

但有一個情況:
2012_9_8_2_33_24___5.jpg 在9月6日的19069出了BUY SIGNAL, 其間又沒有SELL SIGNAL 出現o 在9月7日的開巿, 還沒有到達出現BUY SIGNAL 的情況, 而在開巿後數分鐘, BUY SIGNAL 的條件符合, 但這一刻已不能出現BUY SIGNAL, 因為ExRem

所以正如大大之前說的話, 用BarsSince應該能夠解決這個問題呢, 但在下面的SS 結果是"1", True 的情況, 為何在IF 條件中是不行...
BB =BarsSince(Buy);
TB=BarsSince(Day()!=Ref(Day(),-1));

SS=BB>TB;
_TRACE("STAT:"+SS); //Result "STAT:1"
if(SS) //ERROR!! 為什麼不能這樣
{
   //do something
}


發表於 12-9-8 13:28 | 顯示全部樓層
keithlsp 發表於 12-9-8 02:43
enochyu大大的答覆令我很感動, 從中學到很多AFL的技巧

PlotShapes( ExRem( Buy, Sell ) * shapeUpArrow


小改版 Line 37 ~ 49,這樣應該可以解決你的問題了 ~

  1. //
  2. // set chart, title style
  3. //
  4. SetChartOptions( 0, chartShowArrows | chartShowDates | chartWrapTitle );
  5. _N(  Title = StrFormat( "{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ) );
  6. //
  7. // define parameter
  8. //
  9. _DateLine = Day() != Ref( Day(), -1 );
  10. _FMA      = MA( Close, 15 );
  11. _SMA      = MA( Close, 45 );
  12. Buy       = _FMA > _SMA;// AND TimeNum() > 90000;
  13. Sell      = _FMA <= _SMA;// AND TimeNum() > 90000;
  14. //
  15. // draw day end line
  16. //
  17. Plot( _DateLine
  18.       , ""
  19.       , ColorRGB( 50, 50, 50 )
  20.       , styleHistogram | styleOwnScale
  21.       , 0
  22.       , 1 );
  23. //
  24. // draw ma line
  25. //
  26. Plot( _FMA
  27.       , "FMA"
  28.       , colorYellow
  29.       , styleLine );
  30. Plot( _SMA
  31.       , "SMA"
  32.       , colorBlue
  33.       , styleLine );
  34. //
  35. // draw buy, sell shapes
  36. //
  37. _InitBuyShape   = ExRem( Buy, Sell );
  38. _InitSellShape  = ExRem( Sell, Buy );
  39. _HardShowShappe = Ref( Day(), Min( BarsSince( _InitBuyShape ), BarsSince( _InitSellShape ) ) * -1 ) != Day();
  40. _HardBuyShape   = ExRem( Buy * _HardShowShappe, Sell );
  41. _HardSellShape  = ExRem( Sell * _HardShowShappe, Buy );
  42. PlotShapes( _InitBuyShape * shapeUpArrow
  43.             + _InitSellShape * shapeDownArrow
  44.             + _HardBuyShape * shapeUpArrow
  45.             + _HardSellShape * shapeDownArrow
  46.             , IIf( Buy, colorYellow, colorBlue )
  47.             , 0
  48.             , IIf( Buy, Low, High )
  49.             , -40 );
  50. //
  51. // draw candle line
  52. //
  53. Plot( C
  54.       , "Close"
  55.       , ParamColor( "Color", colorBlack )
  56.       , styleNoTitle | ParamStyle( "Style" ) | GetPriceStyle() );
複製代碼

 樓主| 發表於 12-9-9 01:06 | 顯示全部樓層
2012_9_9_1_4_34___5.jpg

enochyu 大大真神人也, 成功了!!!

評分

參與人數 1金錢 +1 收起 理由
enochyu + 1 祝 順心 XD

查看全部評分

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

本版積分規則

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

GMT+8, 24-11-23 04:40

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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