奇狐社區論壇
在這個頁面顯示本主題全部的 11 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- ffl傳錯了嗎? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=23256)


由 mangomango8855 在 2022-02-06 22:00 發表:

ffl傳錯了嗎?

W1:between(B,9,10) and HHV(H,B+1)<DYNAINFO(53) and 漲幅<9.5
and wb>wa and wb<wa*1.7 linethick0;
<%
WW=ffl.vardata("W1")
if WW=1 then
Set WshShell= CreateObject ("WScript.Shell")
WshShell.exec("c:\XX.exe")
end if
%>

出現 error說。類型不符, 執行腳本失敗。
W1值已確認是ok的,不是0就是1。
是ffl傳錯值了嗎?或我哪裡錯了!


由 cgjj 在 2022-02-06 23:07 發表:

回覆: ffl傳錯了嗎?

引用:
最初由 mangomango8855 發表
W1:between(B,9,10) and HHV(H,B+1)<DYNAINFO(53) and 漲幅<9.5
and wb>wa and wb<wa*1.7 linethick0;
<%
WW=ffl.vardata("W1")
if WW=1 then
Set WshShell= CreateObject ("WScript.Shell")
WshShell.exec("c:\XX.exe")
end if
%>

出現 error說。類型不符, 執行腳本失敗。
W1值已確認是ok的,不是0就是1。
是ffl傳錯值了嗎?或我哪裡錯了!



W1 結果是數列
將 W1 傳遞給 vbscript 中的 WW
WW 也會是數列(陣列)
您存取 WW 的方式不對,當然會 Error


由 mangomango8855 在 2022-02-14 05:32 發表:

那我該怎麼寫?

找了好多文章還是看不出要怎麼寫!可以請幫忙有個提示嗎?看了幾十篇還找不出來。嗚嗚~~~


由 cgjj 在 2022-02-14 08:34 發表:

回覆: 那我該怎麼寫?

引用:
最初由 mangomango8855 發表
找了好多文章還是看不出要怎麼寫!可以請幫忙有個提示嗎?看了幾十篇還找不出來。嗚嗚~~~


<% %> 間的程式碼
是屬於 vbScript 語言,您必須要懂 vbScript 語言才能正確處理
請問您呼叫 vbScript 是要用來做什麼事?


由 mangomango8855 在 2022-02-15 01:10 發表:

為了呼叫元大的api

當W1成立時,我設在第9~10分時的1分週期棒棒,呼叫元大自動下單的api做下單處理,我上網看他們的api是exe檔,傳參數給exe,所以才想用<%%>vbscript來呼叫exe檔,但先用其它的exe測!目前這個exe是嘸蝦米的exe檔!如果W1=1時,這個嘸蝦米的exe檔會起來。


由 cgjj 在 2022-02-15 09:02 發表:

回覆: 為了呼叫元大的api

引用:
最初由 mangomango8855 發表
當W1成立時,我設在第9~10分時的1分週期棒棒,呼叫元大自動下單的api做下單處理,我上網看他們的api是exe檔,傳參數給exe,所以才想用<%%>vbscript來呼叫exe檔,但先用其它的exe測!目前這個exe是嘸蝦米的exe檔!如果W1=1時,這個嘸蝦米的exe檔會起來。


看了好多文章,還是不會寫是很正常的~~~

因為您沒有先去學習最基本的 vbscript 程式語言語法!
學習如何存取數列(陣列)是一般程式語言中最基礎的課程

若您學不會語法如何處理,或者只會拼貼程式不了解其中運作細節,那麼建議您就不要想去做自動下單

並非所有的指標公式都適合做自動下單(指標特性不同),看盤用的公式比較單純一些,自動下單用的公式常有許多不同層面的風險需要考量和處理,往往不是簡簡單單的訊號帶入就可適合用,兩者程式處理上需顧慮的層面大不相同。例如:盤中當下當根之訊號不可忽有忽無,且歷史訊號不會事後變動。

自公式原理特性,到公式多、空、止盈、止損、平倉等條件訊號的撰寫與處理,到串接下單機模擬測試,到電腦相關配置設定等等...,這整個過程,任何一環節,自己最好都要有能力和充分的知識處理。其中所有細節與相關可能引發的風險,都必須要有完備清楚的認知,同時自己也要有能力應付突發狀況,自己也願意接受一切可能的風險。若達不到,建議放棄 "程式自動下單" 這個想法吧,做[程式自動下單]沒那樣簡單,通常有很長的一段路要走。也千萬不要以為有了自動下單,就不需要人盯。


由 mangomango8855 在 2022-02-16 01:13 發表:

我不認為這是vbscript的問題

今天如果我不寫自動下單,也一樣會遇到同樣問題!
奇狐程式結合vbscript時的做法!
如果W1是我在奇狐裡設定出來的指標!它原本是陣列~~~那vbscript一般是如何銜接奇狐給的值,如果只能ffl只能接非陣列值,那就等於奇狐沒功用!程式都麻是變數傳來傳去!
我現在的問題是奇狐的指標出來的數值,在VBscript是如果接收。說是陣列!
在奇狐a:close; 請問這不是陣列嗎?但我看文章依然可以用ffl(a)傳到vbscript。
這不是去懂vbscript就可以解決的。是欠缺奇狐系統傳值到vbscript的方法,請問除了問你們還能問誰!
單單我今天要把資訊傳到我手機或email或line或什麼都不行!單跟我講一堆自動下單的事。是不是扯遠了又沒解決問題!
所以說!指標出來的數值都是陣列數,因為比如1分鐘週期。每分鐘都出現值,這其實的陣列!而一般我們看到以為是單單一個值!所以才會誤解嗎?
結果還是,要如果做,請偉大又厲害的大大寫給易了的sample吧!


由 cgjj 在 2022-02-16 09:41 發表:

回覆: 我不認為這是vbscript的問題

引用:
最初由 mangomango8855 發表
今天如果我不寫自動下單,也一樣會遇到同樣問題!
奇狐程式結合vbscript時的做法!
如果W1是我在奇狐裡設定出來的指標!它原本是陣列~~~那vbscript一般是如何銜接奇狐給的值,如果只能ffl只能接非陣列值,那就等於奇狐沒功用!程式都麻是變數傳來傳去!
我現在的問題是奇狐的指標出來的數值,在VBscript是如果接收。說是陣列!
在奇狐a:close; 請問這不是陣列嗎?但我看文章依然可以用ffl(a)傳到vbscript。
這不是去懂vbscript就可以解決的。是欠缺奇狐系統傳值到vbscript的方法,請問除了問你們還能問誰!
單單我今天要把資訊傳到我手機或email或line或什麼都不行!單跟我講一堆自動下單的事。是不是扯遠了又沒解決問題!
所以說!指標出來的數值都是陣列數,因為比如1分鐘週期。每分鐘都出現值,這其實的陣列!而一般我們看到以為是單單一個值!所以才會誤解嗎?
結果還是,要如果做,請偉大又厲害的大大寫給易了的sample吧!



a:close;
close 在奇狐中是數列(陣列),有多少根K棒就有多少個元素
令 a 為 close 後,a 也會是數列(陣列)

ffl.vardata 可將奇狐的變數傳遞到 vbscript 中
無論該變數是否為陣列都是可以傳遞的唷,例如:
PP:=1234; //這是數值
SS:='ABCD'; //這是文字
CC:Close; //這是收盤價數列(陣列)
<%
BPP=ffl.vardata("PP") '取奇狐的PP數值存入BPP,BPP是數值
BSS=ffl.vardata("SS") '取奇狐的SS字串存入BSS,BSS是文字
BCC=ffl.vardata("CC") '取奇狐的CC數列存入BCC,BCC是陣列
%>

請您看清楚我前面所說的:
W1 結果是數列
將 W1 傳遞給 vbscript 中的 WW
WW 也會是數列(陣列)
您存取 WW 的方式不對,當然會 Error


我並沒有說您這行 WW=ffl.vardata("W1") 寫錯唷~~
您將奇狐變數傳遞到 vbscript 中的方法是正確的。
故並沒有 "欠缺奇狐系統傳值到vbscript的方法" (您自己都已經會傳了)

問題是在於後續存取 WW 的方式不對!!!
WW 是個陣列 (源自於奇狐的W1數列)
在 vbscript 中是不能直接用 if WW=1 then 這種方式去存取陣列的
if cond then 中的 cond 條件式結果 僅能為單值,不可為陣列
也就是說:
可以對單一數值、單一字串、陣列中的單一元素 來做比較
不可以對整個陣列直接做比較

您需要去了解和學習的是在 vbscript 中:
如何取得陣列中的第n個元素值
如何取得陣列的上界和下界
如何搭配迴圈去輪流存取陣列中的每一個元素
Google 一下 vbscript and 陣列 就有許多教學和範例

備註:
這就有點像似,在奇狐中也是不可以用 if W1=1 then 去存取W1數列


由 mangomango8855 在 2022-02-16 23:49 發表:

奇狐的if then

所以在奇狐裡:讀W1時是==>
B:=BARSLAST(DATE<>ref(DATE,1));

for i=0 to B
if W1(B)=1 then
XXXXX
else
XXXX
end;

next i;


====>請問是這樣對嗎?
因為我在奇狐用if then也卡到!


由 cgjj 在 2022-02-17 00:01 發表:

回覆: 奇狐的if then

引用:
最初由 mangomango8855 發表
所以在奇狐裡:讀W1時是==>
B:=BARSLAST(DATE<>ref(DATE,1));

for i=0 to B
if W1(B)=1 then
XXXXX
else
XXXX
end;

next i;

====>請問是這樣對嗎?
因為我在奇狐用if then也卡到!



不對!
奇狐的數列中的單一元素,要用 數列[n] 的方式去存取,不是用 數列(n) 的方式


奇狐裡面有兩種IF

第一種IF
IF(COND,A,B) 主要是針對數列
這一種是支援數列的,可直接整個數列對整個數列做運算
例如:if(Close>Open, A, B)
其中 Close 和 Open 都是數列,有3000根K棒Close 和 Open 數列中有就有3000個元素
當這一行跑完時,就會得到3000根的結果


第二種IF
if COND then ... 應用在單值判斷
其 COND 之運算結果,必須為單值,不可為數列,範例:
if STKLABEL='2330' then ....
if DYNAINFO(14)*100>6 then ...

若要應用在數列,需搭配迴圈以單一元素存取,例如:
原碼:
CC:Close; OO:Open; for i=1 to datacount do begin if CC[i]>OO[i] then begin ..........符合條件之處理.......... end else begin ..........不符合條件之處理.......... end; end;


由 cgjj 在 2022-02-17 17:30 發表:

另外
for i=0 to B 這部分也是錯的
B是數列,不能這樣帶入 for 的式子中

奇狐社區論壇 > 指標公式 > [進階教學] 中的教學內容
建議請依序閱讀完,自己試寫歷練後,才能真正學會應用與處理
http://www.chiefox.com.tw/bbs/forum...p?s=&forumid=46


全部時間均為台灣時間, 現在時間為07:30
在這個頁面顯示本主題全部的 11 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.