如何做一個累計次數的腳本

  •   615 
  • 最後發表   西門吹冷氣  2020 十月 19
西門吹冷氣 發文於   2020/10/01

是否能將A,B,C策略執行同一個腳本,然後將3個策略的觸發執行次數累計,有點類似網頁計數器

Sum = Asum+Bsum+Csum

排序方式: 標準 | 最新
XQ小幫手 發文於   2020/10/05

西門吹冷氣 您早

您可以在您的A,B,C策略當中,

設計一個變數去紀錄這個「累計」 EX 以下我是用 value1

if close=low then   //A策略
    begin
    ret=1;
    value1 =+1;
    end;

if close>open then   //B策略
    begin
    ret=1;
    value1 =+1;
    end;

if close=high then  //C策略
    begin
    ret=1;
    value1 =+1;
    end;

if value1=5 then 
    value1=0;

當每個策略觸發時,他就+1

當紀錄來到5時,我就把它歸零

概念大概是這樣,提供給您參考看看

西門吹冷氣 發文於   2020/10/06

這個我知道,我有想過是不是可以寫進去一個函數去做記錄,謝謝
我要的是SUM=A策略的value1+B策略的value1+C策略的value1

XQ小幫手 發文於   2020/10/06

西門吹冷氣 您好

感覺起來概念應該是一樣的?

只是您分別ABC策略設三個變數 然後最後加總?

西門吹冷氣 發文於   2020/10/07

我是要不同策略,執行同一個腳本,執行次數是SUM=A+B+C+........+N

if close=low then //A,B,C策略都是執行這個腳本

begin

ret=1;

Num =+1;

end;

 

A.Num+B.Num+C.Num如何加總並記錄

XQ小幫手 發文於   2020/10/08

西門吹冷氣 您好

我想到的方法是如以下這樣

input: _switch(1);


if close>0 and _switch=1 then   //A策略
    begin
    ret=1;
    end;

if open>0 and _switch=2 then     //B策略
    begin
    ret=1;
    end;

if low>0 and _switch=3 then  //C策略
    begin
    ret=1;
    end;

if close>0 then 
value1 +=1;

if open>0 then 
value2 +=1;

if low>0 then 
value3 +=1;

if value1+value2+value3>10 then 
    begin
    value1=0;
    value2=0;
    value3=0;
    end;

print(date,time,close,value1,value2,value3);

我們先用一個_switch 來判別策略a b c

但是策略雷達的規則是 如果像是進入策略a 那就不會讀取到其他雷達的數據

所以我覺得可以把雷達跟累積次數分開

下面在撰寫一段 

if close>0 then 
value1 +=1;

if open>0 then 
value2 +=1;

if low>0 then 
value3 +=1;

在個別策略外分開累積 那應該就可以達成您想要的效果了

請用print功能看看數值,會比較好理解

西門吹冷氣 發文於   2020/10/10

//腳本

variable: intrabarpersist Num(0);

if close>=open and Num <=100 then //這是策略腳本,A,B,C策略都是執行這個腳本

   begin

      ret=1;

      Num=SNum(Num1);//調用函數SNum後回傳Num1的值給Num

   end;

 

//SNum函數部分

variable: intrabarpersist _Num(0);

input:_Num1(numericref);

 

 _Num +=_1;

_Num1 =_Num;

 

這是我想到的,不知道可不可以

1.A策略調用函數後把_Num的值記錄下來,B策略調用函數一樣把_Num的值記錄下來,然後有什麼辦法把A._Num+B._Num+C._Num
2.或是當A策略調用函數後_Num假設值變成5記錄下來,等B策略調用函數把 _Num +=_1就是5+1


現在就是當策略觸發腳本後,每個腳本都是獨立的,不知道函數是不是也跟腳本一樣獨立的,如果是獨立的那就是如同第1個方式,要如何
A._Num+B._Num+C._Num;
如果是共同調用函數那就跟第2個方式一樣,可以累計

XQ小幫手 發文於   2020/10/12

西門吹冷氣 您好

函數依然無法拿來記錄的

其實自訂函數就是把您的一套想法從策略中簡化

舉個例

average  是函數

但是我的策略 a 與策略 b  兩個都用average的話

他們是會個別計算不會有影響的 

西門吹冷氣 發文於   2020/10/18

明白了,都是內部函數或是內部變數,可不可以建議增加外部函數或外部變數呢

XQ小幫手 發文於   2020/10/19

西門吹冷氣 您好

關於這方面我會整理後在幫您提議看看

感謝您的建議 

 

發表回覆
Close