![]() |
總頁數 (3): « 1 [2] 3 » 在這個頁面顯示本主題全部的 33 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請問如果要限制交易次數條件該怎麼寫呢? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=16808)
回覆: 回覆: 回覆: 增加多轉空、空轉多條件?
引用:
最初由 sync 發表
感謝版大的幫忙。
請問調整位置是甚麼意思?
往前調整位置不同有甚麼影響嗎?
抱歉大大,小弟不懂?
回覆:
版大您好:
我想增加一個出場條件,
進場後最大獲利若曾達到30點以上,折返50%則停利出場該如何寫呢?
ex:做多最大獲利曾來到40點,則從最高價折返40*0.5=20點平倉。
最大獲利是用進場後曾經達到的最高H價來算多方之盈,最低L價來算空方之盈。
站上我有查到類似範例,但因某些條件語法不同,所以我不會改寫插入,
再次麻煩您的幫忙,謝謝。
回覆: 回覆:
引用:
最初由 sync 發表
版大您好:
我想增加一個出場條件,
進場後最大獲利若曾達到30點以上,折返50%則停利出場該如何寫呢?
ex:做多最大獲利曾來到40點,則從最高價折返40*0.5=20點平倉。
最大獲利是用進場後曾經達到的最高H價來算多方之盈,最低L價來算空方之盈。
站上我有查到類似範例,但因某些條件語法不同,所以我不會改寫插入,
再次麻煩您的幫忙,謝謝。
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
進場:=多進-空進;
出場:=多出-空出;
控損:=30;
控利:=60;
進價:=0;
OO:=O; CC:=C; HH:=H; LL:=L;
多空:=0; //1.多 -1.空 0.無
進出:=C*0 NOAXIS;
DECK:=date<>ref(date,1) or barpos=1;
for i = 1 to datacount do begin
if DECK[i] then CountN:=0;
if 多空=0 then begin
if 進場[i]<>0 and CountN<3 then begin
多空:=進場[i]; 進出[i]:=多空; Max利:=0;
進價:=OO[i]; CountN:=CountN+1;
end;
end else if 多空<>0 then begin
損HL:=LL[i]*(多空=1)+HH[i]*(多空=-1);
盈HL:=HH[i]*(多空=1)+LL[i]*(多空=-1);
損T:=(損HL-進價)*多空;
盈T:=(盈HL-進價)*多空;
if 盈T>Max利 then Max利:=盈T;
if 強出[i] then begin
進出[i]:=多空*6; 多空:=0;
end else if 多空=出場[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 損T<=-控損 then begin
進出[i]:=多空*5; 多空:=0;
end else if 盈T>=控利 then begin
進出[i]:=多空*3; 多空:=0;
end else if Max利>30 and 盈T<Max利*0.5 then begin
進出[i]:=多空*4; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=-多空*7; 多空:=-多空;
進價:=OO[i]; CountN:=CountN+1;
end;
end;
end;
回覆:
感謝總版主的指導,非常感恩謝謝!
版大您好:
折返出場條件訊號會有消失問題,請問該如何改進?
引用:
最初由 sync 發表
版大您好:
折返出場條件訊號會有消失問題,請問該如何改進?
引用:
最初由 sync 發表
版大您好:
折返出場條件訊號會有消失問題,請問該如何改進?
引用:
最初由 sync 發表
我的想法是增加如下2計算式,請問這樣可以嗎?
折返盈HL:=LL[i]*(多空=1)+HH[i]*(多空=-1);
折返盈T:=(折返盈HL-進價)*多空;
end else if Max利>30 and 折返盈T<Max利*0.5 then begin
進出[i]:=多空*4; 多空:=0;
引用:
最初由 cgjj 發表
這樣算與原來程式中的 "損T" 是相等的
損HL:=LL[i]*(多空=1)+HH[i]*(多空=-1);
損T:=(損HL-進價)*多空;
將
end else if Max利>30 and 盈T<Max利*0.5 then begin
改為
end else if Max利>30 and 損T<Max利*0.5 then begin
就是您要的
引用:
最初由 cgjj 發表
您說的狀況應該是規則交互影響的關係(非程式問題)
這要看是那個規則先到囉
現相關次序是: (您可自行視需要調整)
1. 損T<=-控損
2. 盈T>=控利
3. Max利>30 and 盈T<Max利*0.5
引用:
最初由 sync 發表
版大您好:
我之前的想法錯了,訊號還是會有消失的問題,而且出場點位前面幾根K棒就到了訊號卻顯示在之後的K棒。
相關次序應該沒問題:
1. 損T<=-控損
2. 盈T>=控利
3. Max利>30 and 盈T<Max利*0.5
1條件到了停損沒有2、3的問題
2條件到了停利沒有1、3的問題
3條件介於1、2之間屬停利訊號
此三條件不致於互相衝突才對。
可以請版大幫我檢查看看程式有沒有問題嗎?謝謝。
引用:
最初由 cgjj 發表
請以實例抓圖標示有問題的地方, 這樣比較利於溝通了解
原碼若有異動添加, 請貼出來, 以利測試幫您找問題
引用:
最初由 sync 發表
版大您好:
問題在於盈T是取當根K棒最高、最低點計算∼(這樣對於固定點數停利沒問題)。
但盈T用於折返停利訊號會發生消失情形:
原因例如以做多為例∼
如果買進後從最高點Max利折返到7400要出場,若出場當根K棒開盤價為7395所以條件成立折返出場訊號就出現了(此時開盤價<=最高價<7400,訊號成立)。
可是如果折返出場當根K棒高點稍後上漲高於7400則條件又會變成不成立所以訊號會消失,訊號消失原因在於計算盈T的H從原本的小於折返點位<7400變成大於折返點位>7400。
不知道小弟這樣解釋清楚嗎?
有什麼辦法讓折返出場跟固定點數出場一樣點到就成立呢?
麻煩版大了,感恩!
引用:
最初由 sync 發表
版大您好:
我本來的想法是用損T取代盈T,可是這樣做又會發生另一種情況,例如做多買進之後若拉一根長紅棒,因為損T是用此時長紅棒的L價計算的,所以長紅棒有可能直接滿足Max利>30 and 損T<Max利*0.5的情形發生而直接出現訊號,雖然訊號不會消失了,可是這樣就不符合想要折返某比率才出場的用意了。
再次麻煩您了,謝謝。
引用:
最初由 sync 發表
版大您好:
我想了三天二夜終於想出解決辦法了。
看似困難的問題竟然是如此簡單。
長久以來麻煩您了,感恩。
全部時間均為台灣時間, 現在時間為20:53 | 總頁數 (3): « 1 [2] 3 » 在這個頁面顯示本主題全部的 33 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.