hulk10425 發表於 12-3-2 20:21

可以幫我看一下這段程式碼嗎?

不知道這邊可不可以直接把程式碼PO上來問,如果不行請跟我講,我會把它刪掉的 ORZ
_SECTION_BEGIN("Num1");
Plot(C,"Price", colorBlack, styleCandle );
a=TimeFrameGetPrice("O",inDaily,0,expandFirst );
b=TimeFrameGetPrice("C",inDaily,-1,expandLast);


d=TimeFrameGetPrice("c",in1Minute,0,expandFirst);
e=TimeFrameGetPrice("o",in1Minute,1,expandFirst);
f=TimeFrameGetPrice("o",in1Minute,2,expandFirst);
g=TimeFrameGetPrice("o",in1Minute,3,expandFirst);
i=TimeFrameGetPrice("o",in1Minute,4,expandFirst);
j=TimeFrameGetPrice("o",in1Minute,5,expandFirst);
k=TimeFrameGetPrice("o",in1Minute,6,expandFirst);

Buy= a>b ;
Sell=d>e OR d>f OR d>g OR d>i OR d>j OR d>k;
Short = a<b;
Cover=d<e OR d<f OR d<g OR d<i OR d<j OR d< k;
_SECTION_END();


我擁有的資料是台指期的分K線資料,我上面這段程式碼本來想要做

叫他比較前一天收盤價和今天的開盤價,

如果今天開盤價比昨天收盤價高,那麼就在開盤第一根分K棒買入多單,然後只要買入後的分K棒有從高點落下就平倉

另外如果今天開盤價比昨天收盤價低,那麼就在開盤第一根分K棒買入空單,然後只要買入後的分K棒有從低點上升就平倉。

但是為什麼這段程式碼進倉的時間都在 1:46:00左右,為什麼不是在開盤建立倉為呢?

請指教 ORZ

enochyu 發表於 12-3-2 22:58

回復 1# hulk10425

Hi, h大

買入後的分K棒有從高點落下就平倉

1. "高點"指的是哪個高點?
2. 平多後,空手、反手還是伺機再進多單?

買入後的分K棒有從低點上升就平倉

1. "低點"指的是哪個低點?
2. 補空後,空手、反手還是伺機再進空單?

hulk10425 發表於 12-3-2 23:55

1.高點指的是只要開盤以後指數有任何一個時刻低於開盤價就平倉
2.低點指的是只要開盤以後指數有任何一個時刻高於開盤價就平倉

然後平倉就不做任何動作了。

我只是想要開盤的時侯看可不可以偷一點小點數而已!

可是我的問題是為什麼這段程式碼進倉的時間都在 1:46:00左右,為什麼不是在開盤建立倉位呢?

enochyu 發表於 12-3-3 08:21

回復 3# hulk10425

Hi, h大

下列方法可控制日內線,當符合你得進場條件時,於第一根K線進行交易。


_YesterdayClose = TimeFrameGetPrice( "C", inDaily, -1 );
_TodayOpen = TimeFrameGetPrice( "O", inDaily, 0 );
_DayBarIndex = BarsSince( Day() != Ref( Day(), -1 ) );

if ( Interval() < inDaily )
{
Buy = ( _DayBarIndex == 0 ) AND ( _TodayOpen > _YesterdayClose );
Short = ( _DayBarIndex == 0 ) AND ( _TodayOpen < _YesterdayClose );
PlotShapes( Buy * shapeUpArrow + Short * shapeDownArrow
, IIf( Buy, colorYellow, colorBlue )
, 0
, IIf( Buy, Low, High )
, -30
);
}


寫法有百百種,參考看看 ~ 其他就由你自行發揮囉。

hulk10425 發表於 12-3-3 08:45

謝謝你囉,我拿回去研究看看 !

hulk10425 發表於 12-3-3 11:04

本帖最後由 hulk10425 於 12-3-3 11:19 AM 編輯

沒事了~"~只是有些參數沒設定好。拍謝

hulk10425 發表於 12-3-3 23:11

BarsSince( Day()!= Ref(Day(), -1))

可以問一下上面這個程式碼的意思是如果某一根K棒他的日期和其前一根K棒的日期不同的時候就加一的意思嘛?

請指教 ORZ

kilroy 發表於 12-3-4 14:47

BarsSince( Day()!= Ref(Day(), -1))

可以問一下上面這個程式碼的意思是如果某一根K棒他的日期和其前一 ...
hulk10425 發表於 12-3-3 11:11 PM http://www.coco-in.net/images/common/back.gif

今天不等於昨天 XD
常見用法:


NewDay = Day() != Ref(Day(), -1);

這個是判斷是否交易日為不同天 (ex. 今天不等於昨天 => TRUE or FALSE) XD

Bars=1 + BarsSince( Day()!= Ref(Day(), -1));


這個是可以讓你判斷當日第幾根K

ex. 當日第 5 跟K 我要做什麼動作


參考看看吧 {:4_153:}

hulk10425 發表於 12-3-6 07:48

謝謝 ^^ ,這樣我大概了解囉
頁: [1]
查看完整版本: 可以幫我看一下這段程式碼嗎?