討論區列表
MultiCharts
一般模式
討論串模式
標題:
[討論] CDP語法分享,並請教問題
by 2009-11-19 21:34:28
0
暱稱:
風小呆
信箱:不顯示
成就:發文(0) / 回文(0) / 推薦(0)
variables:cdp(0),ah(0),nh(0),nl(0),al(0);
if date[0]<>date[1] then begin
cdp = (highD(1)+LowD(1)+2*CloseD(1))/4;
ah = cdp + (highD(1) - LowD(1));
nh = cdp*2 - LowD(1);
nl = 2*cdp - highD(1);
al = cdp - (highD(1) - LowD(1));
end;
Plot1( ah, "AH" ) ;
Plot2( nh, "NH" ) ;
Plot3( cdp, "CDP" ) ;
Plot4( nl, "NL" ) ;
plot5( al, "AL");
以上是 CDP 語法,請參考。
小弟想請問,若在國外商品中,如 CME 的貨幣期貨,
商品交易的時間是 17:00 至隔日的 16:00
(( 相當於台灣時間早上七點交易至隔日早上六點(冬令時間) ))
在 QM 中商品設定 - 交易時段,使用 CME: FX Futures (GLOBEX)
在顯示盤別當中,已經可以正確顯示出開收盤的區間,
想請問在類似 CDP 這種需要取前一日開高低收數據,
該使用甚麼語法才是正確的?
小弟在字典裡爬了關於 Date and Time Routines 相關的語法,
也找了關於 Sessions 的部分,似乎還是一頭霧水一知半解,
我猜測應該是 date[0]<>date[1] 這一句,
讓 MC 以商品時間的 0:00 當做切換日期的基準
但實際上小弟是希望以 16:00 收盤的時間當做基準
包含語法中 highD(1) 是取上一個 17:00 到隔日 16:00 的高點
(( 譬如台指期的上一個 08:45 到 13:45 的高點 ))
希望有前輩能指點提攜,再次感謝
第1篇:
[討論] CDP語法分享,並請教問題
by 2009-11-24 08:58:48
0
暱稱:
Brian
信箱:brianchung@multicharts.com.tw
成就:發文(0) / 回文(0) / 推薦(30)
誰叫你星期六放我們鴿子
晚點回答你
第2篇:
[討論] CDP語法分享,並請教問題
by 2009-11-24 15:49:15
0
暱稱:
客服一號
信箱:folkchen.sp2@gmail.com
成就:發文(0) / 回文(0) / 推薦(96)
MC 中的 CloseD 是以日期的不同視為換日,若你想在一日的中間以上下盤或特定時間當換日基準的話
必須自已重寫 CloseD 的計算模式,範例如後
紅色處為換日基準點,請自行修改,該範例自1200拆成上下兩盤
HighD LowD 請自行依範例增修
在國內 1345 換日會有問題,因結算日是以 1330為最後一根,所以自行改為 Date <> Date[1]
新增以下名為 _OHLCPeriodsAgo 的函數
inputs: PeriodsAgo( numericsimple ), oPeriodOpen( numericref ), oPeriodHigh( numericref ), oPeriodLow( numericref ), oPeriodClose( numericref ) ;
variables: var0( 0 ) ;
arrays: arr0[ 4, 50 ]( -1 ) ;
if (PeriodsAgo > 50) then begin
oPeriodOpen = -1 ;
oPeriodHigh = -1 ;
oPeriodLow = -1 ;
oPeriodClose = -1 ;
_OHLCPeriodsAgo = -1 ;
end else begin
if (CurrentBar = 1
or time[1] = 1200.00 or time[1] = 1345.00
) then begin
var0 = var0 - 1 ;
if var0 = -1 then var0 = 50 ;
arr0[ 1, var0 ] = O ;
arr0[ 2, var0 ] = H ;
arr0[ 3, var0 ] = L ;
arr0[ 4, var0 ] = C ;
end else begin
if (H > arr0[ 2, var0 ]) then arr0[ 2, var0 ] = H ;
if (L < arr0[ 3, var0 ]) then arr0[ 3, var0 ] = L ;
arr0[ 4, var0 ] = C ;
end ;
oPeriodOpen = arr0[ 1, Mod( var0 + PeriodsAgo, 51 ) ] ;
oPeriodHigh = arr0[ 2, Mod( var0 + PeriodsAgo, 51 ) ] ;
oPeriodLow = arr0[ 3, Mod( var0 + PeriodsAgo, 51 ) ] ;
oPeriodClose = arr0[ 4, Mod( var0 + PeriodsAgo, 51 ) ] ;
_OHLCPeriodsAgo = 1 ;
end ;
if false then Value1 = _OHLCPeriodsAgo[1] ;
新增以下名為 _CloseD 的函數
inputs: PeriodsAgo( numericsimple ) ;
variables: var0( 0 ), var1( 0 ), var2( 0 ), var3( 0 ) ;
Value1 = _OHLCPeriodsAgo( PeriodsAgo, var0, var1, var2, var3 ) ;
_CloseD = var3 ;
新增以下名為 _OpenD 的函數
inputs: PeriodsAgo( numericsimple ) ;
variables: var0( 0 ), var1( 0 ), var2( 0 ), var3( 0 ) ;
Value1 = _OHLCPeriodsAgo( PeriodsAgo, var0, var1, var2, var3 ) ;
_OpenD = var0 ;
第3篇:
[討論] CDP語法分享,並請教問題
by 2009-11-24 20:48:58
0
暱稱:
風小呆
信箱:不顯示
成就:發文(0) / 回文(0) / 推薦(0)
報告,小弟我... 改出來了,雖然是蠻爛的改法就是了。
在時區部分設成 UTC+01:00
在 Charts 裡商品時區選用交易所
這樣就能把商品的 17:00 當成 00:00 來騙過 QM 了
附帶一提,那天我真的不是故意放鴿子啊~
周五晚上原本嘗試用程式的方法來處理,
東拼西湊的改到凌晨三點多還沒搞出來~
隔天周六就... 理所當然的睡到中午才醒了~ ((大笑))
第4篇:
[討論] CDP語法分享,並請教問題
by 2009-11-25 00:03:06
0
暱稱:
Brian
信箱:brianchung@multicharts.com.tw
成就:發文(0) / 回文(0) / 推薦(30)
找到一個函數SessionEndTime,
用這個應該會一勞永逸吧。
第5篇:
[討論] CDP語法分享,並請教問題
by 2010-03-23 10:14:41
0
暱稱:
阿正
信箱:不顯示
成就:發文(0) / 回文(0) / 推薦(0)
你好,請問一下,為什麼
plot1(ah,"ah");
plot2(al,"al");
算出來的結果是正確的,但是實際畫出來的位置是錯的。
第6篇:
[討論] CDP語法分享,並請教問題
by 2010-03-23 10:48:32
0
暱稱:
MultiCharts小秘書
信箱:不顯示
成就:發文(0) / 回文(0) / 推薦(94)
是不是疊在主圖上呢?
如果是,請於指標→設定→比例中選"和商品一致"
第一頁
上一頁
1
下一頁
最後頁
討論區列表
MultiCharts
MultiCharts
│
討論區
│
會員專區
│
教學講座
│
支援與服務
│
產品購買
│
申請試用
All rights for MultiCharts Trading Software are reserved by MultiCharts, LLC
凱衛資訊股份有限公司 營利事業統一編號(21261212) 著作權所有 本網站最佳瀏覽解析度為 1024 x 768
隱私權政策
│
網站安全政策
│
著作權說明
若不清楚點選圖片更新驗證碼
註冊帳號
忘記密碼
解除鎖定