Microsoft Word - PowerLanguage語法構造簡易說明.doc

Similar documents
If Close[Length]!= 0 Then B Close[Length] 是 Length 日前的 Close 不是 0 的話則執行 B % Number 以 Divisor 來求取除法並傳回剩下的部份和 Divisor 具備相同的符 號 格式 :Number % Divisor Numb

Excel VBA Excel Visual Basic for Application

Microsoft Word 個股查詢查詢 Sniper 程式語法中文說明.doc

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

Microsoft PowerPoint - C_Structure.ppt

Microsoft Word - ACI chapter00-1ed.docx

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

p-2

CHAPTER VC#

投影片 1

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft PowerPoint - ASP_NET_03

C/C++语言 - 运算符、表达式和语句

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

VB.Net

國立北斗家商 107 學年度第 2 學期第二次期中考科目 : 計算機應用 計算機概論 IV 班級 : 商二 1 2 貿二 資二 綜二 1 作答方式 : 答案卡 選擇題共 33 題, 除第 1 題 4 分, 其餘每題 3 分, 注意作答時間 1. ( ) 使用 Visual Basic 程式語言 (

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

此運算子具有的優先順序高於下一個區段且低於前一個區段 請注意, 您可以按一下運算子以移至內附範例的詳細資料頁面 x && y 邏輯 AND 如果第一個運算元為 false,c# 就不會評估第二個運算元 條件 OR 運算子 此運算子具有的優先順序高於下一個區段且低於前一個區段 請注意, 您可以按一下運

Java 程式設計入門

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

HTML網頁基礎語言

######## First set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else y <- 2 ######## Second set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else ###

Microsoft PowerPoint - 02_運算.pptx

資料結構之C語言重點複習

Microsoft Word - ACG chapter00c-3ed.docx

C/C++ Programming

Microsoft Word - 投影片ch11

Microsoft Word - ACL chapter02-5ed.docx

Microsoft PowerPoint - Chapter4

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Microsoft PowerPoint - 06_迴圈2.pptx

Python_02

Visual Basic D 3D

WWW PHP

Microsoft Word C-A卷.docx

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e


1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

Visual C# 2005程式設計

Microsoft PowerPoint - 04-array_pointer.ppt

Microsoft PowerPoint - Chapter3

投影片 1

第四講 資料型態及變數、常數






Microsoft PowerPoint - sql2005_ch09.ppt

untitled

Microsoft PowerPoint - Class2.pptx

Microsoft PowerPoint - VB3

C/C++基礎程式設計班

C/C++ 语言 - 循环

C/C++ - 字符输入输出和字符确认

Microsoft Word - 小心翼翼的二十一點N.doc

The Embedded computing platform

Microsoft Word - 透析8051之迴圈控制方法.doc

Microsoft PowerPoint - VB14.ppt

使用手冊

3-1 javascript v4.1

基本數學核心能力測驗_行為觀察記錄紙_G2版本

Java

Microsoft PowerPoint - vb_net8

TYPE AND PARTS SELECTION OF ALUMINUM FRAME TOLERANCE OF ALUMINUM FRAME 鋁擠型專用資訊頁容易搜尋! 刊載多項技術資訊與使用範例! MISUMI

投稿類別:資訊類

Python Facebook put_wall_post(message,attachment [,profile_id]) put_wall_post(message,attachment [,profile_id]) message message attachment profi

Microsoft Word - part doc

進委託的方式來執行 進場的點位在圖表中會標示箭頭 數量與買進名稱 ( 如 Strong Bull ), 買進箭頭是紅色且標示在 K Bar 下方 只有編寫 Buy 的情況下和 Buy ( Buy ) This Bar on Close 做相同處理, 數 量在買賣信號設定 分析工具 對話視窗的 買賣契

1

封面-12

現在人類獲取地球內部訊息的方法, 是從可能影響我們身家性命安全的地震, 用數學模型把地震資料轉換成地震波速度, 進而獲得地底物質密度與深度的關係 地下世界知多少 km/s g/cm 3 P Gpa km S P S 3,000 3,000 ak K 透視地底 Percy Bridgma

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

目次 CONTENTS 2 1 乘法公式與多項式 二次方根與畢氏定理 因式分解 一元二次方程式

!249 第 八講 進階指標 講師 : 李根逸 (Ken-Yi Lee),


PowerPoint Presentation

Microsoft PowerPoint - 08_Class

大 綱 最 有 利 標 目 的 及 類 型 最 有 利 標 之 辦 理 方 式 準 用 最 有 利 標 取 最 有 利 標 精 神 最 有 利 標 之 類 型 及 其 相 關 規 定 適 用 最 有 利 標 準 用 最 有 利 標 及 取 最 有 利 標 精 神 作 業 程 序 及 實 務 分 析

Transcription:

Power Language 語法構造簡易說明 Power Language 主要是用來定義金融商品的交易條件, 並交由電腦自動執行, 這種策略 執行一定會比人工交易更精準 更效率 Power Language 的語法構造 一段完整且編譯成功的程式碼可以稱作為腳本 ( Scripts ),Power Language 有 3 種腳 本型式 : 1. 可產生交易指令的買賣訊號 2. 可在圖表區中繪出點 線或其他符號, 幫助投資人進行視覺分析的技術指標 3. 函數可獨立運算, 且可在其他腳本中被呼叫重複使用 Power Language 的重要組成元素 1. 關鍵字, 也是 Power Language 中內建的函數, 透過這些關鍵字可以完成數值 運算與羅輯判斷 2. 忽略字, 可讓 Power Language 容易閱讀, 但其實沒有作用, 程式執行時會跳 過這些忽略字 3. 資料型別, 共有數值 字串與布林值 ( True / False ) 4. 日期與時間, 日期 YYYMMDD ( YYY 從 1900 起算 ), 時間為 24 小時制 5. 運算子, 分為數學運算子 關係運算子 邏輯運算子與字串運算 6. 變數, 有內部變數與外部變數, 用來儲存資料 ( 數值 字串與布林值 )

7. 陣列, 含有多個元素的變數, 使用時需經宣告 8. 參數, 用來傳遞資料 ( 數值 字串與布林值 ) 9. 標點符號 10. 歷史資料引用,Power Language 提供 N Bars ago ( [ N ] ) 的語法, 來取得特 定期間前的歷史資料 宣告變數 變數 : 是在程式執行過程中用來存放值的位置, 沒有固定的值, 可以在程式碼中的任何一 個地方存取變數值 變數宣告及語法 Variables : 變數名稱 ( 值 ) 例 : variable : Len ( 5 ) / variables : Len ( 5 ) / var : Len ( 5 ) / vars : Len ( 5 ) 變數名稱是變數的名字, 在變數宣告時, 要同時指定 1 個預設值, 這個預設值同時決定了 變數的資料型別 ( 數值 文字串 布林值 ), 多個變數宣告只需用逗號分隔即可 在 SniperIDE 中 value1 ~ value99 ( 預設值 : 0 ) 與 condition1 ~ condition99 ( 預設 值 : False ) 為系統內建不需透過變數宣告即可使用 設定變數值 / 讀取變數值 變數宣告完成時, 即可在程式中任一地方指定新的值給變數, 但指定值需與變數資料型別 一致 而變數最重要的作用是讓我們在程式中可以任意引用, 引用方法就是在程式中直接 使用變數名稱即可

例 : value1 = ( High + Low ) / 2, 將中價設定為 value1,condition1 = volume > volume[1], 今日成交量是否大於昨日成交量設定為 condition1 Condition1 = High[2] > High[1] And // 昨高小於前高而且 Low[2] < Low[1] And // 昨低大於前低而且 Close > High[2] + 1 Points // 收盤大於前高加 1 個 Points If Condition1 Then // 假如 Condition1 為真 FindPoint1( (Close/High[2]-1)*100, BottomSide, " 母子突破上漲 ") // 找點並在 K 棒下方顯示 " 母子突破上漲 " End If 參數 必須經由宣告才能使用, 但是在程式執行過程中參數值是不能被修改的, 參數是程式時執 行預先定義的, 我們可以透過變更參數值的方式來調整指標 買賣信號 個股查詢與 Candle pattern 參數宣告及語法

Parameter : 參數名稱 ( 值 ) 例 : Parameter : Len ( 5 ) / parameters : Len ( 5 ) / Param : Len ( 5 ) / Params : Len ( 5 ) 參數名稱是參數的名字, 在參數宣告時, 要同時指定 1 個預設值, 這個預設值同時決定了 參數的資料型別 ( 數值 文字串 布林值 ), 多個參數宣告只需用逗號分隔即可, 用參數 來代替常數可以增加使用的便利性, 參數的另一個重要功能即是參數最佳化 參數值的運用 當參數宣告成功後, 可以在程式中直接以參數名稱運用 例 : Parameter: 日期參數 ( 50 ), 高低比率 ( 50 ) // 參數宣告 : 期間與均線參數 ( 預設值為 50 ), 高低比率 ( 預設為 50% ) Value1 = MAFC( Volume, 日期參數 ) //50 日均量設定為 Value1 Value2 = Highest( High, 日期參數 ) //50 日最高設定為 Value2 Value3 = Lowest( Low, 日期參數 ) //50 日最低設定為 Value3 Parameter: 股價 ( Close ), 連續下跌次數 ( 2 ) // 參數宣告 : 價格參數 ( 預設值 : 收盤價 ), 連續下跌次數 ( 預設值為 2 ) Variables: Count(0)

// 內部變數宣告 : 計次變數 ( 用來計算下跌次數, 預設值為 0 ) Count = 0 // 設定計算下跌次數為 0 For Value1 = 0 To 100 // 迴圈開始 ( 計數從 0 到 100 ) If 股價 [Value1] < 股價 [Value1+1] Then // 假如價格小於昨日價格 Count += 1 // 計算下跌次數 + 1 ( 等同於 Counter = Counter + 1,Counter += 1 是 C++ 寫法, 不易解讀 ) ElseIf 股價 [Value1] > 股價 [Value1+1] Then // 否則假如價格大於於昨日價格 Exit For // 中斷並跳出迴圈 End if End For // 計數 0 執行結束, 計數加 1 後, 若未超過 100, 則重新進行迴圈, 若超過 100 則結 束迴圈 在這個例子中, 我們宣告了一個名為股價的參數, 預設值為 Close, 但是我們可以透過參

數值的改變如將 Close 變更為 Low or High or open 或其他運算式, 這個時候就不是用 收盤價來計算了, 這給與程式開發者很大的彈性運用空間 陣列 陣列是可以儲存很多值的變數, 定義好的陣列可以利用索引值 ( Index ) 來讀取或變更陣列 中的元素值, 一般來說, 性質類似的值可以使用陣列來存取 陣列宣告及語法 Array : 陣列名稱 [ A1 ] ( 預設值 ) Arrays : 陣列名稱 [ B1 ] ( 預設值 ) 在 Power Language 中, 陣列內的元素無限制, 但是過大的陣列變數宣告, 會佔用過多 的記憶體, 容易耗盡系統資源, 影響程式執行效能 更多例子 : Array : Length[7](1),Length1[7](1) 宣告 Length & Length1 為數值陣列, 內含 8 ( Index : 0 ~ 7 ) 個元素, 每個元素的初始 值為 1 陣列變數的讀取與變更 語法 : 陣列名稱 [ 索引值 ] = Expression 例 : Array : Volume_High[9](0) Volume_High[4] = Highest ( Volume,10 ) 將過去 10 根 K Bar 的成交量最高值存入陣列 Volume_High 索引值為 4 ( 第 5

個元素 ) 中 陣列變數的讀取 陣列變數宣告成功後, 在程式執行過程中可以陣列名稱加上索引值來讀取陣列變數的值 例 : 讀取陣列 Volume_High 索引值為 3 的元素值, 並設定為 Value1 Array : Volume_High[9](0) Value1 = Volume_High[3] 使用者函數 使用者函數 的制訂是為了讓特定功能或可重複利用的程式碼片段包裝成使用者函 數, 讓程式開發者再次執行時只要呼叫函數名稱即可, 不需重複進行編碼, 可解除開發者 的不便及具有易於管理的功能, 在程式編碼的過程中, 若有可以重複使用的程式片段或執 行特定運算功能的程式碼, 可以制定 使用者函數, 制定順序如下 : 選擇開新檔案並開啟函數 ( Function )

輸入 MA 的名稱並且設定數字型 ( Numeric ), 接著即可在編輯視窗中進行編輯 內部變數 / 外部變數 只有在檔案內部回傳的變數, 需要 Variable 變數宣告, 可由外部指定的變數, 需要 Parameter 變數宣告, 使用 Parameter 宣告的變數可在模擬回測中進行參數最佳化以求 取各種參數組合的績效表現 Parameter: 上漲顏色 (Red), 下跌顏色 (Green), 比較棒數 (6), 權重 (1) // 外部變數宣告 : 上漲顏色 ( 預設值為紅色 ), 下跌顏色 ( 預設值為綠色 ), 比較棒數 ( 預設值為 6 ), 權重 ( 預設值為 1 ) Variables: haclose(0), haopen(0), hahigh(0), halow(0), color(0) // 內部變數宣告 ( 內部用 ) : ha 收盤,ha 開盤,ha 最高,ha 最低, 顏色 If BarNumber = 1 then // 假如第 1 根 K 棒 haopen = open // 將開盤價設定為 ha 開盤 haclose = (Open + High + Low + Close) / 4 // 將 4 價平均值設定為 ha 收盤 hahigh = MaxList( high, haopen, haclose) // 將最高 ha 開盤 ha 收盤中最大值設定為 ha 最高 halow = MinList( low, haopen, haclose)

// 將最低 ha 開盤 ha 收盤中最小值設定為 ha 最低 End If if BarNumber > 1 then // 假如 K 棒數大於 1 haclose = (Open + High + Low + Close * 權重 ) / (3 + 權重 ) // 將收盤加權與開高低取平均值設定為 ha 收盤 haopen = (haopen[1] + haclose[1] * 權重 ) / (1 + 權重 ) // 將昨日 ha 開盤 & 昨日 ha 收盤加權取平均值設定為 ha 開盤 hahigh = MaxList(High, haopen, haclose) // 將最高 ha 開盤 ha 收盤中最大值設定為 ha 最高 halow = MinList(Low, haopen, haclose) // 將最低 ha 開盤 ha 收盤中最小值設定為 ha 最低 if haclose > haopen then // 假如 ha 收盤大於 ha 開盤 color = 上漲顏色 // 將紅色設定為 color else // 否則 color = 下跌顏色

// 將綠色設定為 color End If for value1 = 1 to 比較棒數 // 迴圈開始 ( 計數由 1 到 6 ) if haopen <= MaxList(haOpen[value1], haclose[value1]) and // 假如 ha 開盤小於等於昨日 ha 開盤 & 昨日 ha 收盤的最大值而且 haopen >= MinList(haOpen[value1], haclose[value1]) and //ha 開盤大於等於昨日 ha 開盤 & 昨日 ha 收盤的最小值而且 haclose <= MaxList(haOpen[value1], haclose[value1]) and //ha 收盤小於等於昨日 ha 開盤 & 昨日 ha 收盤的最大值而且 haclose >= MinList(haOpen[value1], haclose[value1]) then //ha 收盤大於等於昨日 ha 開盤 & 昨日 ha 收盤的最小值 color = color[value1] // 將昨日顏色設定為顏色 End If End For // 計數 1 執行結束, 計數加 1 後, 若未超過比較棒數, 則重新進行迴圈, 若超過比 較棒數則結束迴圈

If Color = 上漲顏色 And CurrentContracts <= 0 Then // 假如顏色是上漲顏色而且目前無未平倉部位或有空頭部位 Buy ("HAL") next bar at market // 次一根開盤市價買進 ( 單位數由 UI 設定參數控制 ), 並在買進 K 棒下方顯示 " HAL " If AlertEnabled Then Alert(" HAL ") End If End If If Color = 下跌顏色 And CurrentContracts >= 0 Then // 假如顏色是下跌顏色而且目前無未平倉部位或有多頭部位 Sell ("HAS") next bar at market // 次一根開盤市價賣出 ( 單位數由 UI 設定參數控制 ), 並在賣出 K 棒上方顯示 " HAS " If AlertEnabled Then Alert(" HAS ") End If End If end If

控制語法 1.IF IF 函數在您指定的條件結果為 TRUE 時, 會傳回一個值, 而在結果為 FALSE 時傳回另一 個值 例如, 如果 A 大於 10, 公式 = IF ( A > 10, " Over 10 ", " 10 or less " ) 會傳 回 " Over 10 ", 如果 A 小於或等於 10, 則會傳回 " 10 or less " 格式 : IF ( logical_test, [ value_if_true ], [ value_if_false ] ) IF 函數語法具有下列引數 ( 引數 : 將資訊提供給動作 事件 方法 屬性 函數或程序 的值 ) logical_test : 必要, 評估後可為 TRUE 或 FALSE 的任何值或運算式 例如,Close = 100 是邏輯運算式 如果收盤價等於 100, 則運算式會評估為 TRUE 否則, 運算式會評估為 FALSE 此引數可以使用任何比較計算運算子 value_if_true : 選用, 這是 logical_test 引數評估為 TRUE 時要傳回的值 例如, 如果 這個引數的值為文字字串 平盤, 且 logical_test 引數評估為 TRUE, 則 IF 函數會 傳回文字 平盤 如果 logical_test 評估為 TRUE, 且 value_if_true 引數已省略 ( 也就是說,logical_test 引數後面只有一個逗號 ), 則 IF 函數會傳回 0 ( 零 ) 若要顯示 TRUE 這個字, 請在 value_if_true 引數中使用邏輯值 TRUE value_if_false : 選用, 這是 logical_test 引數評估為 FALSE 時要傳回的值 例如, 如果 這個引數的值為文字字串 上漲或下跌, 且 logical_test 引數評估為 FALSE, 則 IF 函數會傳回文字 上漲或下跌 如果 logical_test 評估為 FALSE, 且 value_if_false

引數已省略 ( 也就是說,value_if_true 引數後面沒有逗號 ), 則 IF 函數會傳回邏輯值 FALSE 如果 logical_test 評估為 FALSE, 且 value_if_false 引數的值已省略 ( 也就是 說, 在 IF 函數中,value_if_true 引數後面沒有逗號 ), 則 IF 函數會傳回值 0 ( 零 ) 巢狀流程控制 格式 : IF ( logical-expression-1 ) THEN statements-1 ELSE IF ( logical-expression-2 ) THEN statements-2 ELSE IF ( logical-expression-3 ) THEN statement-3 ELSE IF (... ) THEN... ELSE statements-else END IF 若 logical-expression-1 為 TRUE,statements-1 會被執行, 若 logical-expression-1 為 FALSE, 則接下來會評估 logical-expression-2, 其結果若為真則執行 statements-2 依此類推 一般來說假設 logical-expression-n 條件判斷為真, 則 statements-n 會被

執行, 然後結束條件判斷式, 否則程式會繼續進行下一個判斷條件評估, 假如所有的條件 判斷皆評估為 FALSE, 則直接執行 statements-else 2. 四種不同類型的 Do 迴圈 Do 迴圈的類型說明範例 Do While Loop Do While... Loop 會驗算條件, 如 Do While condition 果條件為 True, 就接著驗算條件之 statements 後的陳述式 驗算結束後, 此迴圈 Loop 會繼續驗算條件, 而如果條件為 True, 又會再次驗算陳述式 這個程序會繼續重複進行, 直到條件為 False 時 Do Until... Loop Do Until... Loop 與 Do While... Do Until condition Loop 類似, 不同之處在於 Do statements Until Loop 會一直進行陳述式的 Loop 驗算, 直到條件驗算結果為 True, 而不是當條件為 True 時進行驗算 Do...Loop While 不論什麼情況之下,Do... Loop Do While 只會驗算一次陳述式 然後 statements 驗算條件, 如果條件為 True, 則再 Loop While condition 驗算一次陳述式 這個程序會繼續重複進行, 直到條件為 False 時 Do...Loop Until 與 Do... Loop While 類似, 不同之處在於 Do... Loop Until 在驗算出條件結果為 True 前, 都會一直驗算陳述式 Do statements Loop Until condition Do 迴圈支援 Exit Do 陳述式立即跳出迴圈 Exit Do 陳述式與 For Next 迴圈中的 Exit For 類似

範例 : Do While sum < 100 sum = sum + 10 Loop Do While 會評估變數 sum, 查看它是否小於 100, 如果是, 就執行下一行程式碼 ; 如果 不是, 就移到 Loop 之後的下一行程式碼 Loop 關鍵字會命令程式碼回到 Do While 行, 然後評估 sum 的新值 Do Until sum >= 100 sum = sum + 10 Loop 這段程式碼與 Do... While 陳述式的程式碼類似, 但是這次程式碼是評估 sum 變數, 查 看它是否等於或大於 100 3.For.. End For 迴圈 在變數中設定初始值與終止值及增加一定的增加值 (Step 以下若省略的話以基本增價值 +1) 比最終值小或相同為止就是執行 Statement 1 Statement 2, 遇到 End For 的話就會結束 For 迴圈,For 迴圈支援 Exit For 陳述式立即跳出迴圈,Exit For 陳述 式與 Do Loop 迴圈中的 Exit Do 類似

格示 : For 變數 = 開始 To 結束 [Step 增減值 ] Statement - 1 [Exit For] Statement - 2 End For 巢狀式 For 迴圈 For I=1 To 10 For J=1 To 10 For K=1 to 10 Statement End For End For End For 範例 : for value1 = 1 to 6 // 迴圈開始 ( 計數由 1 到 6 ) if haopen <= MaxList(haOpen[value1], haclose[value1]) and // 假如 ha 開盤小於等於昨日 ha 開盤 & 昨日 ha 收盤的最大值而且 haopen >= MinList(haOpen[value1], haclose[value1]) and

//ha 開盤大於等於昨日 ha 開盤 & 昨日 ha 收盤的最小值而且 haclose <= MaxList(haOpen[value1], haclose[value1]) and //ha 收盤小於等於昨日 ha 開盤 & 昨日 ha 收盤的最大值而且 haclose >= MinList(haOpen[value1], haclose[value1]) then //ha 收盤大於等於昨日 ha 開盤 & 昨日 ha 收盤的最小值 color = color[value1] // 將昨日顏色設定為顏色 End If End For // 計數 1 執行結束, 計數加 1 後, 若未超過比較棒數, 則重新進行迴圈, 若超過比 較棒數則結束迴圈 ( If 條件判斷式之後的比較判斷會因為 For 迴圈的重複執行而與昨 日 前 2 日.. 前 6 日等進行比較 演算關係參考 1. 算術運算子 記號 使用法 +( 加法 ) Close + Low -( 減法 ) Close Low *( 乘法 ) Close * Low

/( 除法 ) Close / Low ^( 指數 ) Close ^ 2 2. 關係運算子 記號 使用法 < ( 小於 ) Close < Low(1) <= ( 小於或等於 ) Close <= Low(1) <> ( 不等於 ) Close <> 100 = ( 等於 ) Close = 100 > ( 大於 ) Close > Close(1) >= ( 大於或等於 ) Close >= High(1) 3. 邏輯運算子 在邏輯值中判斷真或假的結果值, 隨著邏輯演算者所使用的演算結果中設定的條件, 若滿足的話變成 TRUE ( 真 ) 的值, 若設定的條件不能滿足的話是變成 FALSE ( 假 ) 的值 Or : 2 個之中只有一個是真的話就變換為真 ( TRUE ) And : 2 個都是真的話變換為真 ( TRUE ) 範例 : If Condition2 And CurrentContracts >= 0 Then // 假如 Condition2 為真 & 目前無未平倉合約或有多頭部位 Sell (" Reverse to Down ") next bar at market

// 次 1 根 K 棒開盤市價賣出 & 並在 K 棒上方顯示 " Reverse to Down " End If If Condition1 Or Condition2 Or Condition3 Or Condition4 Or Condition5 Or Condition6 Then // 若符合上述 6 種狀況其中之 1 FindPoint1( (Close-Low) / Low * 100, BottomSide, " 上升轉換 ") // 找點, 並在 K 棒下方顯示 " 上升轉換 " End if 4. 運算優先順序 制定策略時各種類的運算子會混合使用, 這時以一般性的方式進行由左側至右側演 算, 並遵循運算子的運算優先順序, 另外為了明確的意義傳達和順序設定可利用括弧 ( ), 以優先處理括弧內的運算式 運算子優先順序 1. 求指數的次方值 ( ^ ) 2. 負值運算子 ( - ) 3. 乘法 ( * ) 和除法 ( / )

4. 加法 ( + ) 和減法 ( - ) 5. 邏輯運算子 ( AND, OR ) [ 參考 ] 利用括弧 () 可以調整優先順序 注釋文 使用者制定函數時, 在 program 的長度很長或很複雜的情形下,program 的制定中需要 記錄有關聯的注釋文以利解讀, 注釋文所表示的情形有兩個, 表示單行的情形下用 //, 在文章開頭時若使用 /*, 則 /* 之後皆視為註釋文 範例 :

歷史值的引用 - [ N ] 的用法 函數或變數值可以引用歷史值, 只要在其後加上 [ N ] 即可 範例 : 在 Price[ X ] 中, [ X ] 是一種標記, 參照 X 根 K Bar 前的值 For i = 1 To 長期均線 // 迴圈開始 ( 計數由 1 到 30 ) If Low[i] < MovingAverage[i] Then // 判斷前幾根 K 棒 ( i ) 最低是否小於前幾根 K 棒 ( i ) 的 30 日移動平均線 UpperTerm = i - 1 // 若最低小於長期均線則將最低在均線上方的棒數設定為最低在長期均線上方期 間 Exit For // 因最低小於長期均線, 迴圈終止 End If End For // 計數 1 執行結束, 計數加 1 後, 若未超過 30, 則重新進行迴圈, 若超過 30 則結束 迴圈 畫圖函數 http://jsmarket.jihsun.com.tw/hts/mainpage_sts_qna000c10.pdf SniperIDE 使用說明 http://jsmarket.jihsun.com.tw/hts/mainpage_sts_qna000c4.pdf