請問一下 我這樣寫好像無法在大盤站上20ma時,才執行策略,該如何更改?

  •   96 
  • 最後發表   Jonathan741  2023 三月 31
Jonathan741 發文於   2023/03/24

條件加在 if裡面,才能被判斷該如何寫

 

input:day(100); setinputname(1,"計算區間");

input:percents(14); setinputname(2,"距離區間最低點漲幅");

condition1 = GetSymbolField("TSE.TW", "收盤價", "D") > average(GetSymbolField("TSE.TW", "收盤價", "D"),20);

SetTotalBar(3);

 

value1 = lowest(close, day-1);

if high = highest(close, day-1) and value1 * (1 + percents/100) >= high

then ret=1;

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

Hello Jonathan741,

 

您寫了 condition1 但卻沒有用在 if 判斷式裡面。

小幫手會這樣修改:

input:day(100); setinputname(1,"計算區間");

input:percents(14); setinputname(2,"距離區間最低點漲幅");

SetTotalBar(3);

condition1 = GetSymbolField("TSE.TW", "收盤價", "D") > average(GetSymbolField("TSE.TW", "收盤價", "D"),20);

 

if condition1 then begin

    value1 = simplelowest(close, day-1);

    condition2 = high = highest(close, day-1) and value1 * (1 + percents/100) >= high

    if condition2 then ret=1;

    end;

 

這樣就只有在 condition1 成立時才會繼續計算 value1 和 condition2 是否成立。

 

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

Jonathan741 發文於   2023/03/30
XQ小幫手 發文於   2023/03/31

Hello Jonathan741,

 

小幫手在 condition2 結束時漏打了 ;。

另外 condition2 裡面的 highest 改為 simplehighest 會比較保險。

input:day(100); setinputname(1,"計算區間");

input:percents(14); setinputname(2,"距離區間最低點漲幅");

SetTotalBar(3);

condition1 = GetSymbolField("TSE.TW", "收盤價", "D") > average(GetSymbolField("TSE.TW", "收盤價", "D"),20);

 

if condition1 then begin

    value1 = simplelowest(close, day-1);

    condition2 = high = simplehighest(close, day-1) and value1 * (1 + percents/100) >= high;

    if condition2 then ret=1;

    end;

  • 按讚來自於
  • f741741741
發表回覆
Close