2020年2月25日 星期二
VBA 基本語法
EXCEL常用的物件:
Workbook 活頁簿
Workbooks 活頁簿集合
Workbooks("filename") 檔名為filename的活頁簿
ActiveWorkbook 正在作用中的活頁簿
Sheets 活頁簿中所有工作表
Sheets(n) 活頁簿中第n張工作表
Worksheet 工作表
Worksheets 所有工作表(包括圖表)
Worksheets("sheet") 指表名為sheet工作表
ActiveSheet 正在作用中的工作表
Columns("c1:c2") c1至c2欄
(其中c1,c2為A~Z或AA~XFD等欄名)
Rows("r1:r2") r1至r2列
(其中r1,r2為1~1048576等列名
Range("x1:x2") x1至x2間的儲存格
(其中x1,x2為儲存格位址名稱)
cells(i,j) 儲存格(第i列、第j行)
ActiveCell 目前的儲存格
Selection 目前所選取的物件
範例:
Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold = True
Worksheets("Sheet1").Cells.ClearContents
Worksheets("Sheet1").Rows(1).Font.Bold = True
Range("1:1,3:3,8:8")
Worksheets("Sheet1").Cells(6, 1).Value = 10
Worksheets("Sheet1").[A1:B5].ClearContents
ActiveCell.Offset(1, 3).Font.Underline = xlDouble
活頁簿常用屬性:
ActiveWorkBook.Name 目前活頁簿的名稱
ActiveWorkBook.Save 儲存目前的活頁簿
ActiveWorkBook.SaveAs Filename := "filename" 另儲新檔
WorkBooks.Add 新增活頁簿
WorkBooks(i).Close [SaveChange, Filename, RouteWorkbook] 關閉指定的第i個活頁簿
SaveChange := True 改變儲存
SaveChange := False 不會改變儲存
SaveChange省略時,會出現對話方塊
filename := "檔名"
WorkBooks.Open "filename" 開啟一個活頁簿
Application.Windows 所有活頁簿視窗
WorkBooks.Count 活頁簿的數量
WorkBooks.Item(Index) 傳回單一活頁簿,由索引值指定
工作表常用屬性:
Worksheets.Add [Before, After, Count, Type] 新增工作表
Before := Worksheets(n) 出現於某工作表之前
After := Worksheets(n) 出現於某工作表之後
Count := n 新增工作表數量
Type := xlWorksheet (工作表) 或 xlChart (圖表)
WorkSheets.Name 工作表名稱
WorkSheets("Sheet1").Activate
設定工作表為目前作用的功作表
儲存格常用屬性:
Rows.RowHeight 指定範圍內的所有列高
Columns.ColumnsWidth:指定範圍內的所欄寬
expression.NumberFormatLocal 以本地的數字格式
Range.CurrentRegion 目前區域
是指以任意空白列及空白欄的組合為邊界的範圍
範例:
Worksheets("Sheet1").Activate
ActiveCell.CurrentRegion.Select
expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
以參照的方式
RowAbsolute 為True,則用列的絕對位址
ColumnAbsolute 為True,則用欄的絕對位址
ReferenceStyle 預設值為xlA1,
如為xlR1C1則為R1C1的表達方式
expression.count 傳回範圍的數量
(可以是欄數、列數或儲存格數量)
expression.Item(RowIndex, ColumnIndex)
代表相對於指定之範圍某個位移距離的範圍。
expression.value 傳回或設定物件的值
expression.Formula 傳回或設定物件的公式,
代表 A1 樣式註解以及巨集語言中的物件公式。
範例:
Worksheets("Sheet1").Range("A1").Formula = "=$A$4+$A$10"
expression.FormulaR1C1 傳回或設定物件的公式,
並以巨集語言中的 R1C1 樣式標記法表示
範例:
Worksheets("Sheet1").Range("B1").FormulaR1C1 = "=SQRT(R1C1)"
expression.Text 傳回或設定物件的文字
範例:
Set c = Worksheets("Sheet1").Range("B14")
c.Value = 1198.3
c.NumberFormat = "$#,##0_);($#,##0)"
MsgBox c.Value
MsgBox c.Text
常用方法:
Range.Select方法/Selection屬性
設定目前選取的範圍/使用目前所選取的範圍
範例:
Sub Macro1()
Sheets("Sheet1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "Name"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Address"
Range("A1:B1").Select
Selection.Font.Bold = True
End Sub
expression.Copy 將目前所選取的物件復製至剪貼簿
expression.Cut 將目前所選取的物件剪下
expression.Delete 將目前所選取的物件刪除
expression.Paste 將剪貼簿的內容貼上
範例:
Sub CopyRow()
Worksheets("Sheet1").Rows(1).Copy
Worksheets("Sheet2").Select
Worksheets("Sheet2").Rows(1).Select
Worksheets("Sheet2").Paste
End Sub
expression.RasteSpecial(Paste,Operation, SkipBlanks, Transpose)
範例:
With Worksheets("Sheet1")
.Range("C1:C5").Copy
.Range("D1:D5").PasteSpecial _
Operation:=xlPasteSpecialOperationAdd
End With
Range.Activate 目前的儲存格
Range.Clear 清除資料
Range.ClearContents 清除資料內容
Range.ClearFormats 清除資料格式
Range.ClearComments 清除註解
expression.AutoFit:自動調整列高和欄寬
Range.FillDown、Range.FillUp、Range.FillLeft、Range.FillRight 填滿
Range.Offset (RowOffset, ColumnOffset) 指定區域的位移列與行
範例:
Sub MoveActive()
Worksheets("Sheet1").Activate
Range("A1:D10").Select
ActiveCell.Value = "Monthly Totals"
ActiveCell.Offset(0, 1).Activate
End Sub
程式語法:
Dim 陳述式(變數)
Dim varname [ As [New] type]
type 包括 Byte、Boolean、Integer、Long、Single、Double、Date、String、Object等
Set 陳述式(物件)
Set objectvar = {[New] objectexpression | Nothing}
例:Set RangeA = Range("A1:B2")
範例:
Sub Random()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:D5")
myRange.Formula = "=RAND()"
myRange.Font.Bold = True
End Sub
With 多種屬性設定
With 物件
.屬性1 = 設定值
.屬性2 = 設定值
.... End With
範例:
Sub AddNew()
Set NewBook = Workbooks.Add
With NewBook
.Title = "All Sales"
.Subject = "Sales"
.SaveAs Filename:="Allsales.xls"
End With
End Sub
Array 陣列
Array(Range1, Range2, ....)
範例:
Sub Several()
Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Select
End Sub
InputBox 函數
InputBox("文字說明",[,title][,default][,xpos][,ypos][,helpfile, context])
MsgBox 函數
MsgBox "文字說明"
Union 將多個範圍合併成單一Range物件
Union(Range1, Range2, ...)
範例:
Sub MultipleRange()
Dim r1, r2, myMultipleRange As Range
Set r1 = Sheets("Sheet1").Range("A1:B2")
Set r2 = Sheets("Sheet1").Range("C3:D4")
Set myMultipleRange = Union(r1, r2)
myMultipleRange.Font.Bold = True
End Sub
For... Next 陳述式
For counter = start to end [ step stepvalue]
[statements]
[Exit For]
[statements]
Next [counter]
範例:
Sub CycleThrough()
Dim Counter As Integer
For Counter = 1 To 20
Worksheets("Sheet1").Cells(Counter, 3).Value = Counter
Next Counter
End Sub
For Each... Next 陳述式
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
範例:
Sub ApplyColor()
Const Limit As Integer = 25
For Each c In Range("MyRange")
If c.Value > Limit Then
c.Interior.ColorIndex = 27
End If
Next c
End Sub
Do ... Loop 陳述式
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
或
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
If ... Then ... Else ... 陳述式
If condition Then [statements][Else elsestatements]
或
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]...
[Else
[elsestatements]]
End If
2020年1月28日 星期二
下載網頁影片
1. 開啟Google Chrome或是Chromium核心的Edge,連到你想要下載的影片頁面;影片預設會自動播放,這時候要按暫停。
2. 在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「檢查」。
3. 這時Chrome右邊會出現網頁檢查選項,切換至「Network」標籤,然後按下鍵盤上的「F5」鍵重新刷新網頁。
4. 按了鍵盤上的「F5」之後,下方就會跑出一堆數據;仔細尋找「Type」形式為「media」的那一行,然後在那一行按兩下滑鼠左鍵。
5. 在「media」那行按兩下滑鼠左鍵後,影片就會以新的分頁開出;在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「另存新檔」,指定你想儲存的位置。
6. 如果使用Chrome的話左下方會突然出現一個警告,寫著「這個檔案並不安全,因此遭到Chrome封鎖」;別緊張,這只是例行性警告,先按一下右邊的「全部顯示」。
7. 按一下「保留不安全的檔案」。
8. 再次跟你確認是否真的要保留檔案,勇敢地給他按「保留」就對了,之後影片檔就會被下載回來。
2. 在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「檢查」。
3. 這時Chrome右邊會出現網頁檢查選項,切換至「Network」標籤,然後按下鍵盤上的「F5」鍵重新刷新網頁。
4. 按了鍵盤上的「F5」之後,下方就會跑出一堆數據;仔細尋找「Type」形式為「media」的那一行,然後在那一行按兩下滑鼠左鍵。
5. 在「media」那行按兩下滑鼠左鍵後,影片就會以新的分頁開出;在影片旁邊空白的地方按一下滑鼠右鍵,點選下拉選單中的「另存新檔」,指定你想儲存的位置。
6. 如果使用Chrome的話左下方會突然出現一個警告,寫著「這個檔案並不安全,因此遭到Chrome封鎖」;別緊張,這只是例行性警告,先按一下右邊的「全部顯示」。
7. 按一下「保留不安全的檔案」。
8. 再次跟你確認是否真的要保留檔案,勇敢地給他按「保留」就對了,之後影片檔就會被下載回來。
2019年5月26日 星期日
一目均衡表
一目均衡表指標
是由日本人 一目山人在1940年代發明。
是由日本人 一目山人在1940年代發明。
K線如果長期處於 雲帶上方,雲帶具有支撐作用
當K線與雲帶接觸,表示指數回測支撐
如果撐住了,指數將在多頭排列的趨勢下繼續創新高。
直到K棒跌破雲帶,就表示支撐失敗,波段將可能反轉。
反之,K線如果長線處於雲帶下,就會面臨壓力
順著空頭排列,履創新低。
一目均衡表由每日的K線(價格線),
5條(快慢遲AB)移動線及1個阻抗帶(雲)所構成。
解讀其間關係可瞭解市場的強弱,可得出買賣信號。
一目均衡圖由短中長三個 (x,y,z) 時間參數,
計算五個指標值組成如下:
短軸快線,(轉換線) =(x期間最高高點 + x期間最低低點) / 2
中軸慢線,(基準線) = (y期間最高高點 + y期間最低低點) / 2
遲行線,(遲行線) = 今天的收盤價格,畫在過去 y 期處
先行指標A, (先行帶A)= (轉換線 + 基準線) / 2,畫在未來 y 期處
先行指標B, (先行帶B)= (最高高點 + 最低低點) / 2,取過去 z 期間,畫在未來 y 期處
Kumo 是指雲(阻抗帶)= Senkou Span A 和 Senkou Span B 之間的空間。
【參數】通常以(9, 26, 52)為短中長期的值:
轉換線 = 短軸快線 = (9日最高+9日低)/2。
基準線 = 中軸慢線 = (26日最高+26日最低)/2。
遲行線 = 今日收盤價往(過去)前市平移一個中線周期(26日);當天價格與26天前的乖離率。
先行指標A = 先行帶A = (短軸快線+中軸慢線)/2,
畫在往(未來)後市挪移一個中線周期的位置。
先行指標B = 先行帶B = (52 日最高+52日最低)/2,
畫在往(未來)後市挪移一個一長線周期的位置。
雲帶(阻抗帶)= 先行指標A與先行指標B之間的空間。
1、買入信號:
價格線位於雲的上方;
價格線在基準線之上推移(基準線成為下降支撐);
轉換線在基準線的上方推移(超強勢的情況下,價格線在轉換線上方推移);
遲行線Chinkou向上越過價格線。
2、賣出信號:
價格線在雲的下方;
價格線在基準線的下方推移(反彈只到轉換線的位置,難以反彈到基準線);
轉換線在基準線的下方推移(降勢明顯的情況下,價格線在轉換線的下方推移);
遲行線Chinkou向下跌破價格線。
3、調整期
A、由上升轉為下降的調整:
價格線開始由上方進入雲帶;
價格線下穿基準線;
轉換線在基準線之下停留;
遲行線開始下穿價格線。
B、由下降轉為上升的調整:
價格線開始站在基準線的上方;
轉換線上穿基準線;
遲行線Chinkou上穿價格線;
價格線由下方進入雲帶,最終上穿雲帶;
遲行線Chinkou穿出雲的上方。
4、一目均衡表的其它特徵
市場遠離雲帶表示趨勢走強,不易觸及雲的邊線;
穿透轉換線時,意味著可能出現調整;
始終未穿透基準線的市場,一旦穿透時,意味較大調整可能;
價格在基準線下方,為弱勢;上方為強勢。
【基準線】
中期屢創新高或低點迭升,則基準線走揚;
中期屢創新低或高點跌降,則基準線走低。
基準線線往上,為買進信號;
基準線由往下,為賣出信號。
價格在基準線上面,為多頭趨勢;
價格線和基準線交叉,表示趨勢反轉。
【轉換線】
價格在基準線下方,為弱勢;上方為強勢。
價格從低下穿越基準線時,走勢將轉為上升,反之轉為下降走勢。
看轉換線的同時,一定要參考基準線。
轉換線若往上或往下,代表市場趨勢往上往下。
當轉換線往水平方向移動時,表是明市場進入盤整。
轉換線和基準線用來判斷是有趨勢的市場還是振盪市場。
如果這兩個線之一橫著在走,我們就可以判斷是振盪市場,不宜交易。
轉換線被用來作為反轉線來判斷趨勢。
轉換線和基準線交叉構成買/賣訊號
轉換線向上穿過基準線- 買進訊號。
轉換線向下穿過基準線- 賣出訊號。
【雲帶】
中長期上升趨勢時,價位上穿雲帶是必須條件;
中長期下降趨勢時,價位下穿雲帶是必須條件。
留意先行線A與先行線B之間交叉的地方。
雲帶是由兩條線形成的:先行線A和先行線B。
這兩條線相交叉的地方,叫“交叉點”,這是雲帶的另一個參考點。
價格位於雲彩之上:上升趨勢
價格位於雲彩之下:下跌趨勢
價格位於雲彩內部: 橫盤趨勢
當價格在經過雲帶交叉點時,一般來說,市場會出現有較大的波動。
雲帶變薄的地方,說明買賣力量趨於均衡,市場易出現劇烈波動。
【遲行線】
遲行線應運用在長期趨勢的判斷上。
遲行線為一目均衡表的最重要的部分。
當遲行線上穿價格線是買入信號,遲行線下穿價格線是賣出信號。
價格在雲上,先行帶A是第一支撐,第二條先行帶B是第二相對支撐
價格在雲下,先行帶B是第一阻力,第二條先行帶B是第二相對阻力
價格在先行帶雲間,我們不在雲內交易。
先行帶的上下軌就是支撐和阻立。
2019年3月30日 星期六
使用LINE Notify做即時播報
使用LINE Notify個人存取權杖
不須登錄網站服務,直接設定通知。
我們的DDE已經把連接相關指令都寫入VBA
只需要用你的 LINE 帳號登入
就可以完成群組或個人的播放
1、首先 進入LINE Notify首頁 登入你的帳號
https://notify-bot.line.me/zh_TW/
6、最後 你只要將這組權杖編碼 貼到DDE裡就完成了
至於播報範圍/方式/型態 上課時再做說明......
不須登錄網站服務,直接設定通知。
我們的DDE已經把連接相關指令都寫入VBA
只需要用你的 LINE 帳號登入
就可以完成群組或個人的播放
1、首先 進入LINE Notify首頁 登入你的帳號
https://notify-bot.line.me/zh_TW/
2、點選 個人頁面
3、點選發行權杖
4、選鑿播報目的群組 輸入一個播報名稱
5、接著你就可以得到一組權杖編碼
請按複製儲存下來就可離開頁面
6、最後 你只要將這組權杖編碼 貼到DDE裡就完成了
至於播報範圍/方式/型態 上課時再做說明......
2019年3月6日 星期三
全多賺 手動換倉說明
每周手動更新有2處
每月手動更新有2處
1、周選擇權 (WOP)
全多賺周選代碼:範例 WTX2H9
周數字【1】= 第1周
周數字【2】= 第2周
周字母【O】= 第3周(第三周合併為月選)
周數字【4】= 第4周
周數字【5】= 第5周(偶爾會有5周)
2、周小台 (每周更新)
全多賺周小台代碼:
WMT1H9......(1=第1周,H=3月 9=2019)
WMT2H9......(2=第2周,H=3月 9=2019)
WMTH9......(第3周同小台指 H=3月 9=2019)
WMT4H9......(4=第4周,H=3月 9=2019)
WMT5H9......(5=第5周,H=3月 9=2019)(偶爾會有5周)
3、月選擇權 (OP)
全多賺月選代碼:範例 WTXOH9
字母【O】= 月選代碼
數字【9】= 年份代碼2019
字母【F】= 1月份代碼
字母【G】= 2月份代碼
字母【H】= 3月份代碼
字母【J】= 4月份代碼
字母【K】= 5月份代碼
字母【M】= 6月份代碼
字母【N】= 7月份代碼
字母【Q】= 8月份代碼
字母【U】= 9月份代碼
字母【V】= 10月份代碼
字母【X】= 11月份代碼
字母【Z】= 12月份代碼
4、樂透 (每月更新,季月分為 3/6/9/12)
樂透開倉月份有6檔 3月+3季
WTX&......(&=連續月當月,不用更改)
WTX@......(@=連續月次月,不用更改)
WTXMK9......(次月+1,例如次月為4月,這裡就是5月)
WTXMM9......(開倉月份之下一季,前三月為3/4/5,這裡就是6月)
WTXMU9......(上一季+1季月,例如上一季為6月,這裡就是9月)
WTXMZ9......(上一季+1季月,例如上一季為9月,這裡就是12月)
P.S. 樂透加M是日盤,不加M是全日盤,
因為日盤才有全部月份樂透,全日盤只留連續月接收數據
因為日盤才有全部月份樂透,全日盤只留連續月接收數據
2019年2月15日 星期五
讓 WINDOWS 自動關機
Windows 作業系統的定時關機程式,搭配內建「工作排程器」,其實就是一個很棒的電腦定時自動關機程式了,不用再費心的到處找囉。有了「工作排程器」的幫助,舉凡要設定電腦定時自動關機、休眠或自動重開機都非常簡單。
1、[ 開始 ] > [ 所有應用程式 ] > [ 工作排程器 ]或
[ 開始 ] > [ 控制台 ] > [ 系統管理工具 ] > [ 工作排程器 ]。
2、在工作排程器視窗中,[ 建立基本工作...]。
3、建立基本工作精靈視窗中,輸入工作排程名稱與描述。
1、[ 開始 ] > [ 所有應用程式 ] > [ 工作排程器 ]或
[ 開始 ] > [ 控制台 ] > [ 系統管理工具 ] > [ 工作排程器 ]。
2、在工作排程器視窗中,[ 建立基本工作...]。
4、在「程式或指令碼」欄位上輸入shutdown.exe後,在「新增引數」欄位內輸入 /s /t 120 後(參數與參數之間需有空白鍵),點擊[下一步]。
(這裡的引數,可打開「命令提示字元」,輸入 shutdown.exe /? 指令來查詢)
5、完成後,回到原介面的工作排程器程式庫中,便可看到剛剛所建立的排程。
6、使用滑鼠雙擊該項目,會再度開啟編輯檢視視窗,可在此處重新編輯設定值。
P.S. 小道瓊冬令時間 06:00 收盤(夏令時段為05:00收盤),DDE設定在06:10存檔關閉,我延遲5分鐘 06:15 才關閉電腦 (它會強制關機,所以不需另外設定關閉券商軟體),隔日若有開盤再自行開機啟動DDE步驟,這段時間可讓電腦休息。
2019年1月4日 星期五
修改圖表資料範圍
有些同學較早拿到學習檔案
時間改變了履約倉位也不同
圖表上履約價範圍如何修改
在此做個簡單的手動修改教學
1、先找出我們要顯示的範圍

以本周WOP作範例介紹:
圖例中左邊為#17列開始有交易
圖例中右邊為#31列後沒有交易
請記下#17列和#31列
2、在你所要修改的圖表上按右鍵→點選【選取資料】
你就會看到以下資料來源設定
先點選右邊座標軸的【編輯】
在輸入欄內 將數字修改為你需要的範圍這裡範例上的需求是17~31
輸入好以後按確定即可
3、下圖左邊圖例項目範圍也要和座標範圍相同
點選第一個圖例【C-OI】按【編輯】
在輸入欄內 將數字修改為17~31
點選第二個圖例【P-OI】按【編輯】
在輸入欄內也將數字修改為17~31
※如果有第三個以上,亦以相同步驟修改即可
※如果有第三個以上,亦以相同步驟修改即可
做完以上修改,按確定退出
圖表就會顯示出你所選擇的圖例範圍。
訂閱:
文章 (Atom)