請選擇 進入手機版 | 繼續訪問電腦版

COCO研究院

 找回密碼
 註冊
搜索
查看: 2035|回復: 4

抱歉,懸賞金只有10元而已!

[複製鏈接]
發表於 13-4-12 14:35 | 顯示全部樓層 |閱讀模式
10金錢
各位前輩,大家好!小弟這裡有個簡單問題,希望前輩多多關照,謝謝!

美國SP500(包含電子盤)每天開盤時間是台灣大約0510,結束時間是隔天大約0450,雖然中間只有休息不到一個小時,但我還是不想冒那跳空的風險。

我會寫時間快到的平倉指令(應該沒有錯):
if time>0450 then sell next bar market;
if time>0450 then buytocover next bar market;

但時間快到不要進場的正確邏輯我一直想不通:
if marketposition=0 and time>0510 and time <0450 then begin
buy.......
sellshort.....
可能有些人已經看出這樣寫很搞笑了,所以接者我又寫:
if marketposition=0 and time>0000 and time<0450 and time >510 and time <2359 then begin
buy.......
sellshort.....

結果也不是我想的那樣,請問有沒有更聰明的寫法?

謝謝!

*抱歉尋賞金只有10金,這是我目前三分之一的財產。

最佳答案

查看完整內容

1. 交易國外期貨儘量用 Exchange Time 不要用 Local Time 2. 當沖交易區間 應該是 (Time >510) or (Time < 450) ,不要被 00:00 這個換日時間混淆。 3. 時間快到時不要進場,你必須先指定一個的時間比如 330,再把前述交易區間改為: If (Time >510) or (Time < 330) Then Begin // Your Entry Condition End ; 這個時間,又必須和接下來的[當沖出場時間] 錯開一段時間... 不然還是會有在交易區間進場,下一個K棒出了交易區間 ...
發表於 13-4-12 14:35 | 顯示全部樓層
本帖最後由 sangi 於 13-4-12 17:15 編輯

1. 交易國外期貨儘量用 Exchange Time 不要用 Local Time

2. 當沖交易區間 應該是 (Time >510) or (Time < 450) ,不要被 00:00 這個換日時間混淆。

3. 時間快到時不要進場,你必須先指定一個的時間比如 330,再把前述交易區間改為:

If (Time >510) or (Time < 330) Then
Begin
// Your Entry Condition
End ;

這個時間,又必須和接下來的[當沖出場時間] 錯開一段時間...

不然還是會有在交易區間進場,下一個K棒出了交易區間就可能面臨要立刻出場的情形...

4. 當沖出場時間:最簡單的到時出場,比如設為400之後出場,

或者400之後開始依據其他條件出場,再沒機會出場後,於特定時間強制出場 ...

If (Time > 400) AND (Time < 510) AND (MarketPosition <> 0) Then
Begin
// Your Exit Condition
End ;

5. 儘量不要用 SetExitOnClose


評分

參與人數 1金錢 +2 收起 理由
3rnie + 2 謝謝前輩的分想!

查看全部評分

回復

使用道具 舉報

發表於 13-4-12 14:49 | 顯示全部樓層
本帖最後由 mewmi 於 13-4-12 14:53 編輯

if marketposition=0 and time>0000 and time<0450 and time >510 and time <2359 then  <---- 這一段怪怪的..

1. 510 是不是 0510..
2. 0000< time < 0450 and 0510< time < 2359 <------ 這是不會成立的.. 因為時間若是在0000 ~ 0450 那就不可能在 0510 ~ 2359間.. 反之亦然.. 所以你可能想要的應該是.. 0000< time < 0450 or 0510< time < 2359
3. 這行寫這樣可能比較好.. if (marketposition=0) and ((time > 0000 and time < 0450) or (time >510 and time < 2359)) then ... 因為運算元件有優先順序所以用()來讓它更清楚你的條件..

通常寫這樣.. 實在很難幫.. 看不出來你到底要的是什麼..

評分

參與人數 1金錢 +2 收起 理由
3rnie + 2 還是很謝謝前輩的分享!

查看全部評分

回復

使用道具 舉報

 樓主| 發表於 13-4-12 20:31 | 顯示全部樓層
sangi 發表於 13-4-12 14:35
1. 交易國外期貨儘量用 Exchange Time 不要用 Local Time

2. 當沖交易區間 應該是 (Time >510) or (Time < ...

抱歉!筆誤,*分享。
回復

使用道具 舉報

 樓主| 發表於 13-4-12 20:54 | 顯示全部樓層

我試著寫只要510就出場,但跑出來的結果卻顯示每根K棒的出場訊號都是doneSE和doneLE,好像每根K都是time=510,不知道我邏輯哪裡錯誤了?

if marketposition=0  and  (Time >610) or (Time < 500) then begin
if marketposition<>-1 then sellshort next bar market;
If marketposition<>1 then buy next bar market;
end;
If time=510 AND MarketPosition <> 0 Then
Sellshort("doneSE") next bar market;
Buytocover("doneLE") next bar market;

Untitled12.jpg



回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 24-3-29 18:43

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 | AI繪圖AI超擬真美女AI beauty AI Stable DiffusionAI正妹AI Lookbook