請協助XS指標的自動交易程式碼,若有庫存股時,交易順序可先賣再買,若無庫存則先買在賣

  •   85 
  • 最後發表   XQYi  2023 十月 30
XQYi 發文於   2023/10/24

請協助XS指標的當沖自動交易程式碼,若有庫存股時,交易順序可先賣再買,若無庫存則先買在賣

當沖次數每日一次就好

之前有發文指標與交易執行時有差異,但尚未回覆,去電表示XS這部分不支援電話技術支援,希望能理解我想要的目標。

 

XS當沖指標程式碼如下

input: Length(14,"天數");

value1 = Average(TrueRange, Length);

value2=open-low;

value3=high-open;

value4=high-low+0.0001;

value5=value2/value4;

value6=1-value5;

value7=open-(value1*value5)/2;

value8=open+(value1*value6)/2;

 

 

condition1=high >= value8-0.0001 ;

condition2= low <= value7 ;

if condition1 then plot2(value8,"S");

if condition2  then  plot3(value7,"B");

 

 

XS交易程式測試過,結果只有買進一次沒有賣出,後來將程式再加入自動交易,結果只有賣出沒有買進

程式碼是否哪裡有錯誤?

XS交易程式碼如下

input: Length(14,"天數");

value1 = Average(TrueRange, Length);

value2=open-low;

value3=high-open;

value4=high-low+0.0001;

value5=value2/value4;

value6=1-value5;

value7=open-(value1*value5)/2;

value8=open+(value1*value6)/2;

condition1=high >= value8-0.0001 ;

condition2= low <= value7 ;

if condition1 then setposition(-1,value8);

if condition2  then setposition(1,value7);

 

XQ小幫手 發文於   2023/10/30

Hello xqyi,

 

請參考 自動交易語法介紹,可以使用 position 和 filled 來控管交易執行。

若要限制每日的交易次數,除了策略的安控設定外,也可以使用變數來記錄進出場的次數。

 

另外,當腳本中有複數個 setposition 同時符合時,腳本只會執行第一個運作的交易指令。

以您這邊的例子來說,因為放空的在上面,所以當買進跟放空的條件同時達成的時候只會執行放空。

建議您使用 print 函數將相關數值印出,會比較好確認比對。

 

由上面的描述來看,小幫手不確定您是否理解 setposition 的運作方式。

setposition(-1) 代表的是把庫存調整成-1 (放空一張),而非賣出一張。

所以當庫存為正值時,例如持有一張時, setposition(-1) 會賣出兩張,讓庫存變成 -1。

發表回覆
Close