到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > [公式]請教交易公式語法問題
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
lung
初級會員

註冊日期: Nov 2015
來  自:
文章數量: 17

[公式]請教交易公式語法問題

版主您好:

請教一些交易公式語法問題
第一個是期貨商品均線範例,設為多空雙向操作,
當沖 1:35 自動平倉,
因訊號當根未收完前 可能消失,
影響一進一出原則,
所以設定下一根進出,

第二個是目前進度
在論壇中有篇 過濾第1個訊號後,出現的相同訊號,
想套用,遇到瓶頸卡關請求協助,謝謝。

1 過濾第1個訊號後同向訊號,假設出現多單進場,
當根買進但收完前訊號已消失,再出現多單進場時就會過濾對嗎?
2 增加停損條件多平和空平,假設20點,停損固定點位平倉,
3 公式中內建交易系統之損平倉條件如有設定,
當出現損平倉條件,如何帶進NowPo 中。


第一個期貨商品均線範例
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,20);

多進:= CROSS(MA1,MA2)=1 ; {多頭買入}
多平:= CROSS(MA2,MA1)=1; {多頭賣出}
空進:= CROSS(MA2,MA1)=1 ; {空頭買入}
空平:= CROSS(MA1,MA2)=1; {空頭賣出}

ENTERLONG:REF(多進,1); {多頭買入} //下一根多進
EXITLONG:REF(多平,1) ; {多頭賣出}
ENTERSHORT:REF(空進,1); {空頭買入}
EXITSHORT:REF(空平,1) ; {空頭賣出}


NowPoInt:= 0; // 因奇狐無法記錄變數值,總倉位要從萬用 API 抓出來
// 取得倉位:若沒有初始化倉位,會回傳 99999
<%
on error resume next
Dim OMCOMAPI, rtn
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GetNowPosition("FTX")
if rtn <> 99999 then FFL.VarData("NowPoInt") = rtn
err.clear
%>

NowPo:= NUMTOSTR(NowPoInt,0); ////空倉或多平 -1
NowPO:= IF(ENTERLONG,'1', NowPO); //多進+1
NowPO:= IF(ENTERSHORT,'-1', NowPO); //空進 +1
NowPO:= IF(EXITSHORT,'1', NowPO); //空平-1
NowPO:= IF((EXITLONG and NowPO= '1') or (EXITSHORT and NowPO= '-1') ,'0', NowPO);
// 當沖 1:35 平倉 0

NowPO:= IF(OPENMINUTES(TIME)>=290,'0', NowPO); //K線時間
NowDT:= NUMTOSTR(YEAR,0) + '/' +NUMTOSTR(MONTH,0)+ '/'+NUMTOSTR(DAY,0) + ' '+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':00'; //最新收盤價
NowC := NUMTOSTR(CLOSE,0);

<%
on error resume next
Dim OMCOMAPI, rtn
NowDT = FFL.VarData("NowDT")
NowPO = FFL.VarData("NowPO")
NowC = FFL.VarData("NowC")
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GoOrder("FTX","",NowDT,NowPO,NowC)
err.clear

第二個是目前進度

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,20);

BB:=CROSS(MA1,MA2)=1;
SS:=CROSS(MA2,MA1)=1;
BB:=BB or barpos=0; // BB 是買訊, 過濾訊號
SS:=SS or barpos=0; // SS 是賣訊, 過濾訊號

CK:=BB-SS;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);


ENTERLONG:CK=1;
EXITLONG:CK=-1 or 多平;
ENTERSHORT: CK=-1 ;
EXITSHORT: CK=1 or 空平 ;


NowPoInt:= 0; // 因奇狐無法記錄變數值,總倉位要從萬用 API 抓出來
// 取得倉位:若沒有初始化倉位,會回傳 99999
<%
on error resume next
Dim OMCOMAPI, rtn
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GetNowPosition("FTX")
if rtn <> 99999 then FFL.VarData("NowPoInt") = rtn
err.clear
%>

NowPo:= NUMTOSTR(NowPoInt,0); ////空倉或多平 -1
NowPO:= IF(ENTERLONG,'1', NowPO); //多進+1
NowPO:= IF(ENTERSHORT,'-1', NowPO); //空進 +1
NowPO:= IF(EXITSHORT,'1', NowPO); //空平-1
NowPO:= IF((EXITLONG and NowPO= '1') or (EXITSHORT and NowPO= '-1') ,'0', NowPO);
// 當沖 1:35 平倉 0

NowPO:= IF(OPENMINUTES(TIME)>=290,'0', NowPO); //K線時間
NowDT:= NUMTOSTR(YEAR,0) + '/' +NUMTOSTR(MONTH,0)+ '/'+NUMTOSTR(DAY,0) + ' '+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':00'; //最新收盤價
NowC := NUMTOSTR(CLOSE,0);

<%
on error resume next
Dim OMCOMAPI, rtn
NowDT = FFL.VarData("NowDT")
NowPO = FFL.VarData("NowPO")
NowC = FFL.VarData("NowC")
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GoOrder("FTX","",NowDT,NowPO,NowC)
err.clear
%>

__________________
lung

向版主報告此篇 | 查IP位址
Old Post 2016-01-16 20:57
lung 現在離線 點選這裡查看 lung 的個人資料 點選這裡給 lung 傳送一條短訊 查找更多關於 lung 的文章 增加 lung 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18165

回覆: [公式]請教交易公式語法問題

引用:
最初由 lung 發表
版主您好:

請教一些交易公式語法問題
第一個是期貨商品均線範例,設為多空雙向操作,
當沖 1:35 自動平倉,
因訊號當根未收完前 可能消失,
影響一進一出原則,
所以設定下一根進出,

第二個是目前進度
在論壇中有篇 過濾第1個訊號後,出現的相同訊號,
想套用,遇到瓶頸卡關請求協助,謝謝。

1 過濾第1個訊號後同向訊號,假設出現多單進場,
當根買進但收完前訊號已消失,再出現多單進場時就會過濾對嗎?
2 增加停損條件多平和空平,假設20點,停損固定點位平倉,
3 公式中內建交易系統之損平倉條件如有設定,
當出現損平倉條件,如何帶進NowPo 中。


第一個期貨商品均線範例
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,20);

多進:= CROSS(MA1,MA2)=1 ; {多頭買入}
多平:= CROSS(MA2,MA1)=1; {多頭賣出}
空進:= CROSS(MA2,MA1)=1 ; {空頭買入}
空平:= CROSS(MA1,MA2)=1; {空頭賣出}

ENTERLONG:REF(多進,1); {多頭買入} //下一根多進
EXITLONG:REF(多平,1) ; {多頭賣出}
ENTERSHORT:REF(空進,1); {空頭買入}
EXITSHORT:REF(空平,1) ; {空頭賣出}


NowPoInt:= 0; // 因奇狐無法記錄變數值,總倉位要從萬用 API 抓出來
// 取得倉位:若沒有初始化倉位,會回傳 99999
<%
on error resume next
Dim OMCOMAPI, rtn
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GetNowPosition("FTX")
if rtn <> 99999 then FFL.VarData("NowPoInt") = rtn
err.clear
%>

NowPo:= NUMTOSTR(NowPoInt,0); ////空倉或多平 -1
NowPO:= IF(ENTERLONG,'1', NowPO); //多進+1
NowPO:= IF(ENTERSHORT,'-1', NowPO); //空進 +1
NowPO:= IF(EXITSHORT,'1', NowPO); //空平-1
NowPO:= IF((EXITLONG and NowPO= '1') or (EXITSHORT and NowPO= '-1') ,'0', NowPO);
// 當沖 1:35 平倉 0

NowPO:= IF(OPENMINUTES(TIME)>=290,'0', NowPO); //K線時間
NowDT:= NUMTOSTR(YEAR,0) + '/' +NUMTOSTR(MONTH,0)+ '/'+NUMTOSTR(DAY,0) + ' '+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':00'; //最新收盤價
NowC := NUMTOSTR(CLOSE,0);

<%
on error resume next
Dim OMCOMAPI, rtn
NowDT = FFL.VarData("NowDT")
NowPO = FFL.VarData("NowPO")
NowC = FFL.VarData("NowC")
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GoOrder("FTX","",NowDT,NowPO,NowC)
err.clear

第二個是目前進度

MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,20);

BB:=CROSS(MA1,MA2)=1;
SS:=CROSS(MA2,MA1)=1;
BB:=BB or barpos=0; // BB 是買訊, 過濾訊號
SS:=SS or barpos=0; // SS 是賣訊, 過濾訊號

CK:=BB-SS;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);


ENTERLONG:CK=1;
EXITLONG:CK=-1 or 多平;
ENTERSHORT: CK=-1 ;
EXITSHORT: CK=1 or 空平 ;


NowPoInt:= 0; // 因奇狐無法記錄變數值,總倉位要從萬用 API 抓出來
// 取得倉位:若沒有初始化倉位,會回傳 99999
<%
on error resume next
Dim OMCOMAPI, rtn
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GetNowPosition("FTX")
if rtn <> 99999 then FFL.VarData("NowPoInt") = rtn
err.clear
%>

NowPo:= NUMTOSTR(NowPoInt,0); ////空倉或多平 -1
NowPO:= IF(ENTERLONG,'1', NowPO); //多進+1
NowPO:= IF(ENTERSHORT,'-1', NowPO); //空進 +1
NowPO:= IF(EXITSHORT,'1', NowPO); //空平-1
NowPO:= IF((EXITLONG and NowPO= '1') or (EXITSHORT and NowPO= '-1') ,'0', NowPO);
// 當沖 1:35 平倉 0

NowPO:= IF(OPENMINUTES(TIME)>=290,'0', NowPO); //K線時間
NowDT:= NUMTOSTR(YEAR,0) + '/' +NUMTOSTR(MONTH,0)+ '/'+NUMTOSTR(DAY,0) + ' '+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':00'; //最新收盤價
NowC := NUMTOSTR(CLOSE,0);

<%
on error resume next
Dim OMCOMAPI, rtn
NowDT = FFL.VarData("NowDT")
NowPO = FFL.VarData("NowPO")
NowC = FFL.VarData("NowC")
Set OMCOMAPI = CreateObject("OMSignAPI.OMCOMAPI")
rtn = OMCOMAPI.GoOrder("FTX","",NowDT,NowPO,NowC)
err.clear
%>



答1:
當根K棒未完成前,訊號會不會消失,與指標特性有關
有些當根一旦成立就不會消失,有的會消失掉
要看指標運用了那些元素做計算,以及其運算規則
若要取前一根訊號作為進出,運用 ref(訊號,1) 即可

答2:
要看您過濾的方式為何?
過濾連續相鄰的同向訊號,例如: BBB#BB#SS#S 變為 B###B##S##S
過濾同向的訊號,例如: BBB#BB#SS#S 變為 B######S###

論壇上用關鍵字 "交易範例" 去搜尋,可以找到一些相關控制範例
參考看看,例如這篇:
http://www.chiefox.com.tw/bbs/showt...&threadid=12433

建議建立[技術指標]型態的公式來寫作
不建議一開始就用[交易系統]型態的公式來寫作
因為[技術指標]可以輸出很多畫面資訊,利於偵錯和觀看

向版主報告此篇 | 查IP位址
Old Post 2016-01-18 12:05
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為00:42 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們