簡化算式

  •   91 
  • 最後發表   E.E  2022 三月 09
E.E 發文於   2022/03/09

請問如果我要簡化下面算式,該怎麼做呢?

Value1 = (close-(high+low)/2)*(close-(high+low)/2);

Value2 = (close[1]-(high[1]+low[1])/2)*(close[1]-(high[1]+low[1])/2);

Value3 = (close[2]-(high[2]+low[2])/2)*(close[2]-(high[2]+low[2])/2);

Value4 = (close[3]-(high[3]+low[3])/2)*(close[3]-(high[3]+low[3])/2);

Value5 = (close[4]-(high[4]+low[4])/2)*(close[4]-(high[4]+low[4])/2);

Value6 = (close[5]-(high[5]+low[5])/2)*(close[5]-(high[5]+low[5])/2);

Value7 = (close[6]-(high[6]+low[6])/2)*(close[6]-(high[6]+low[6])/2);

Value8 = (close[7]-(high[7]+low[7])/2)*(close[7]-(high[7]+low[7])/2);

Value9 = (close[8]-(high[8]+low[8])/2)*(close[8]-(high[8]+low[8])/2);

Value10 = (close[9]-(high[9]+low[9])/2)*(close[9]-(high[9]+low[9])/2);

Value11 = (close[10]-(high[10]+low[10])/2)*(close[10]-(high[10]+low[10])/2);

Value12 = (close[11]-(high[11]+low[11])/2)*(close[11]-(high[11]+low[11])/2);

Value13 = (close[12]-(high[12]+low[12])/2)*(close[12]-(high[12]+low[12])/2);

Value14 = (close[13]-(high[13]+low[13])/2)*(close[13]-(high[13]+low[13])/2);

Value15 = (close[14]-(high[14]+low[14])/2)*(close[14]-(high[14]+low[14])/2);

Value16 = (close[15]-(high[15]+low[15])/2)*(close[15]-(high[15]+low[15])/2);

Value17 = (close[16]-(high[16]+low[16])/2)*(close[16]-(high[16]+low[16])/2);

Value18 = (close[17]-(high[17]+low[17])/2)*(close[17]-(high[17]+low[17])/2);

Value19 = (close[18]-(high[18]+low[18])/2)*(close[18]-(high[18]+low[18])/2);

Value20 = (close[19]-(high[19]+low[19])/2)*(close[19]-(high[19]+low[19])/2);

 

 

value21 = volume*Value1;

value22 = volume[1]*Value2;

value23 = volume[2]*Value3;

value24 = volume[3]*Value4;

value25 = volume[4]*Value5;

value26 = volume[5]*Value6;

value27 = volume[6]*Value7;

value28 = volume[7]*Value8;

value29 = volume[8]*Value9;

value30 = volume[9]*Value10;

value31 = volume[10]*Value11;

value32 = volume[11]*Value12;

value33 = volume[12]*Value13;

value34 = volume[13]*Value14;

value35 = volume[14]*Value15;

value36 = volume[15]*Value16;

value37 = volume[16]*Value17;

value38 = volume[17]*Value18;

value39 = volume[18]*Value19;

value40 = volume[19]*Value20;

 

 

value41 =(value21+value22+value23+value24+value25+value26+value27+value28+value29+value30+value31+value32+value33+value34+value35+value36+value37+value38+value39+value40);

 

value50 =(value21/value41);

value51 =(value22/value41);

value52 =(value23/value41);

value53 =(value24/value41);

value54 =(value25/value41);

value55 =(value26/value41);

value56 =(value27/value41);

value57 =(value28/value41);

value58 =(value29/value41);

value59 =(value30/value41);

value60 =(value31/value41);

value61 =(value32/value41);

value62 =(value33/value41);

value63 =(value34/value41);

value64 =(value35/value41);

value65 =(value36/value41);

value66 =(value37/value41);

value67 =(value38/value41);

value68 =(value39/value41);

value69 =(value40/value41);

 

 

value70 = (close*value50);

value71 = (close[1]*value51);

value72 = (close[2]*value52);

value73 = (close[3]*value53);

value74 = (close[4]*value54);

value75 = (close[5]*value55);

value76 = (close[6]*value56);

value77 = (close[7]*value57);

value78 = (close[8]*value58);

value79 = (close[9]*value59);

value80 = (close[10]*value60);

value81 = (close[11]*value61);

value82 = (close[12]*value62);

value83 = (close[13]*value63);

value84 = (close[14]*value64);

value85 = (close[15]*value65);

value86 = (close[16]*value66);

value87 = (close[17]*value67);

value88 = (close[18]*value68);

value89 = (close[19]*value69);

 

 

 

value90 = (value70+value71+value72+value73+value74+value75+value76+value77+value78+value79+value80+value81+value82+value83+value84+value85+value86+value87+value88+value89);

 

plot1(value90,"20日");

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/03/09

Hello E.E,

 

您可以使用 [] 的方式來取用前期值。

舉例來說:

value1[1] = value1在前一根Bar的值 = 您腳本中value2

至於一段期間內的值加總,您可以參考 Summation 函數。

所以您的前半腳本簡化會像是:

value1 = (close-(high+low)/2)*(close-(high+low)/2);

value2 = volume * value1;

value3 = summation(value2, 20);

不過像是 value50 到 value69 這一段的話,因為您全是除以當下那根Bar的數值,而不是向前對應Bar的位置,所以不能使用

value4 = value2 / value3;

這種方式,要一個個寫出來,或是可以使用 for 迴圈搭配 array 來存值。

網站上有教學區,裡面有XS語法的基礎和應用可以供您閱覽。

 

E.E 發文於   2022/03/09

感謝

 

發表回覆
Close