目前日期文章:201310 (10)

瀏覽方式: 標題列表 簡短摘要

  本節說明 getData()與測試主檔的結構。

  本函式的功能就是將符合選股條件的資料存入「測試主檔」中,將來再利用一些進場條件作實際上的進場,請參考《進場篩選》一節。

jesse0606 發表在 痞客邦 留言(0) 人氣()

  本書主要是介紹如何使用電腦程式設計來輔助股票系統的建立與操作,這裡不是要送你幾個交易系統,讓你能夠馬上用它來賺大錢,如果它真有那麼好用,那麼這本書可能就要價值千萬了。

  簡而言之,這本書是介紹我所發明的一個物件「ssd」,你可以輕鬆繼承它來開發各種交易系統。現在你應該不會誤會成是我要送你幾套能賺錢的系統了吧!

jesse0606 發表在 痞客邦 留言(0) 人氣()

  假如你設定10組參數,10個期間,如果你要一個一個去執行,那麼你要做100次。我們的設計讓你可以只執行一次就全部完成。

  有一些基本的參數,必須加以固定才能開發出基本模型,比如說:初始停損點等,我們歸納為以下幾個,定義在 interface StockTest中,如下:

jesse0606 發表在 痞客邦 留言(0) 人氣()

  「 交易.創造自己的聖盃(第二版)」的作者凡‧沙普博士認為「出場方法」比「進場方法」重要,他甚至設計出一套「隨機進場」的系統來測試,結果證明出場方法好的話,即使「隨機進場」也能夠獲利。

  他沒有證明的是,如果進場方法好,加上出場方法也好,那是不是效果會更好?

jesse0606 發表在 痞客邦 留言(0) 人氣()

  美律在幾年前就已經是知名的手機零件股,在2007年7月見到最高價144元,其後隨2008年的金融大海嘯一路跌至2008年11月的低點20.3元,約86%,然後隨大盤反彈至2010年1月的高價67.9元,大約彈了2.3倍,再其後因基本面產生變化(手機市場版圖大變遷,大客戶被KO掉)始終無法彈到原先高點的一半價格70元。

  就在大家遺忘這檔股票的時候,我在前幾天(2013/10/24)才由盤中節目得知原來它發明了一種可以隔絕50公分以外噪音的麥克風技術,才驚覺原來這檔股票的基本面已經大有轉機,不過這時股票也已經上百元了。

jesse0606 發表在 痞客邦 留言(0) 人氣()

  當你繼承 ssd 的時候,我們希望只需要覆寫單一功能的函式,而大部分的細節不需要去重寫。比如說:

  Class lvstg extend ssd {...

jesse0606 發表在 痞客邦 留言(0) 人氣()

  股票資料庫的基礎函式頗多,如果全部併在 ssd Class 略顯複雜,所以將其獨立為一個物件比較適合。

abstract class ssd 中的宣告

jesse0606 發表在 痞客邦 留言(0) 人氣()

  ssd 指 Stock System Dynamics。

  本抽象類別為interface StockTest的實作,只要加以繼承,然後覆寫其中的abstract方法就可以變成 LVSTG(大量強勢股),BBBRO(價格波動率突破)...等等交易系統。

jesse0606 發表在 痞客邦 留言(0) 人氣()

定義股票測試類別的原型介面

import java.sql.*;
import java.util.*;
import java.text.*;
import java.io.*;
interface StockTest
{
  int PARA_MAXNUM = 25; // 最多參數數目
  String PARA_SEPRATOR = ","; // 參數分隔字元

  int DATE_MAXNUM = 20; // 最多日期區間組數
  int DATE_CODE = 0; // DateRangs[][0] 期間代號
  int DATE_BEG = 1; // DateRangs[][1] 期間開始
  int DATE_END = 2; // DateRangs[][2] 期間結束
  int DATE_ENABLED = 3; // DateRangs[][3] 本期間是否有效,"N"時不執行測試

  //--- 後續動作旗標
  int FLAG_CONTINUE = 0;  // 繼續
  int FLAG_STOP_NEXTOPEN = 1; // 隔日開盤賣出
  int FLAG_STOP_CLOSE = 5; // 收盤賣出

  //--- 參數固定位置
  int ADD_MAXTIMES = 0; // 總部位數,達到時不再加碼,除非有經過減碼(3)
  int ADD_CRI  = 1; // 加碼水準,如每5%加碼一次(5%)
  int SUB_CRI  = 2; // 減碼水準,如每3%加碼一次(3%)
  int MAX_LOSE  = 3; // 部位>=NUM_CHECK時每一部位最少平均獲利, 0指不可處於虧損狀態(0#)
  int NUM_CHECK = 4; // 如3,指部位數超過3筆時,總獲利不可處於虧損狀態,否則即賣出(3)
  int FIRSTSTOP_CRI = 5; // 初始停損點
  int CHG_CRI = 6; // 獲利n%以後改變出場規則
  int MAXDROP_CRI = 7; // 自高點回落n%出場
  int IN_DAYS = 8; //  n日內達到買進水準,1=隔日
  int BUY_MODE = 9; //  ("尾盤","盤中","隔開","隔低","開盤")

  void Start(); // 開始
  void initOther(); // 起始化其他變動部分
  void test1() throws IOException,SQLException; // 測試一組參數
  void setMyDatabase(); //設定資料庫
  void setFiles(String tbl_stat, String tbl_data, String txt_trace); //設定統計、資料與追蹤報表
  void setParm(); //設定參數群組
  void setTestDateRange(); // 設定測試期間群組
  void enableTDR(int idx[]); // 將idx[]陣列指定的期間使有效
  void enableTDR_ALL(); // 將所有期間使有效
  void setForceStopDate(); // 設定強迫出場日期陣列
  String getFixParaSpec();
  void printParm() throws IOException; //列印出參數組的明細
  void getData() throws SQLException; // 選取符合買進條件資料
  void setBuy() throws SQLException,IOException; // 進場篩選,決定實際進場日期與買價
  void setSale(); // 設定出場日期與賣價
  void calcEarn(); // 計算每一筆交易的盈虧百分比
  void calcStat(); // 統計測試結果
  double calcProfit(); //計算[庫存]+[已賣出]的實際獲利
  boolean chkIsMaxDrop(); // 檢查是否超過MAX_DROP_CRI
  boolean chkMinProfit(); // 檢查[庫存]+[已賣出]有無達到[最小獲利]水準
  boolean chkIsForceStop(java.util.Date dte); // 檢查是否強制出場
  boolean chkIsForceStopBear(); // 檢查是否強制出場(空頭)
  boolean chkOtherStop(); // 檢查額外的出場條件,比如說:已經超過預定的持股天數
  boolean chkIsAdd(); // 檢查是否要加碼?
  boolean chkIsReduce(); // 檢查是否要減碼?
  boolean chkIsChg(); // 檢查是否要要改變出場規則?

}

jesse0606 發表在 痞客邦 留言(0) 人氣()

封裝

  有四種等級:private, protected, public還有none(沒有宣告時)

jesse0606 發表在 痞客邦 留言(0) 人氣()