본문 바로가기
잡돈살미(Job Money Life)

Chatgpt를 활용한 주식, 선물 매매일지 엑셀 공유

by 잡돈살미 2023. 12. 5.
chatgpt 홈페이지

 

매매일지가 필요할까?

주식 공부를 하던지, 선물 공부를 하던지

어떤 공부이든 간에 다들 예습과 복습이 제일 중요하다는 말을 들어봤을 거라 생각합니다.

그럼 주식에서 예습은 무엇이고 복습은 무엇일까?

예습은 관련 산업/기업을 공부하고 투자의 가치를 판단하는 것이고

복습은 투자 이후 적절한(?) 곳에서 투자를 종료하였는가 일 것이다.

이 글을 찾아오신 분들은

그중 복습 단계의 행위를 잘하려면 매매일지를 써야 한다는 말을 한 번쯤 들어봤을 것이고

그 매매일지를 어떻게 쓸까 하고 들어온 분들이라 생각합니다.

저 또한 매매일지를 어떻게 쓸까 고민을 많이 했고

이런 디지털 시대에 손으로 쓰는 건 아닌 거 같아서 엑셀로 만들어봤습니다.

매매일지 사용방법

공유하는 매매일지 파일은

마이크로 나스닥 100 선물 지수를 바탕으로 작성되어 있고

엑셀의 기본기능만 안다면 충분히 각자의 스타일로 만들 수 있을 거라 생각합니다.

1. 사용할 때 엑셀의 매크로 기능을 활성화시켜야 하고 대충 생김새를 보면 다들 이해하실 겁니다.

2. 간단히 설명하면 'form'시트에서 매매결과를 입력하고 기록 버튼을 클릭하면

3. 'Performance'시트에 매매결과가 누적되어 관리됩니다.

4. 이후 1번부터 순차적으로 매매결과 시트가 생성되어 저장됩니다.

*해당 매매일지는 '유튜브 : 하우투트레이드'를 참고하여 만들었고, 제 나름대로 고민/수정하여 만들었습니다.

그대로 쓰려고 했지만 제 방식과 맞지 않아서 제가 새로 짰습니다. 혹시나 문제가 된다면 삭제하겠습니다.

첨부된 파일에도 있지만

Chatgpt를 활용하면 어렵게 생각했던 매크로를 손쉽게 만들 수 있습니다.

제가 사용한 Chatgpt 글 전문을 아래에 공유드리니 각자에 맞게 변경 사용하시면 됩니다.

다들 열심히 하는 만큼 좋은 결과 있으시길 ^^

 
티스토리 파일 첨부를 어떻게 하는지 모르겠네요...
네이버 블로그로 오셔서 다운받으시면 됩니다.
https://blog.naver.com/hyunjin4797/223283061773

Chatgpt를 활용한 주식, 선물 매매일지 공유

주식 공부를 하던지, 선물 공부를 하던지 어떤 공부이든 간에 다들 예습과 복습이 제일 중요하다는 말을 들...

blog.naver.com

엑셀 매크로 코드

1. 기록 매크로
한글 입력 : 엑셀 매크로 코드 만들어줘. '양식'이라는 시트를 복사하고 시트 이름은 '양식'시트의 P1셀값으로 시트이름을 생성하도록 해죠. 그리고 '양식'시트의 P1셀 값은 기존값에 1을 더한 값으로 바꿔죠. 그리고 새로 생성되는 시트는 왼쪽에서 네번째에 위치하게 해줘. 그리고 '양식'시트 U13부터AB13까지의 값을 '실적'시트의 A33부터H33까지에 입력하고 계속해서 아래로 데이터가 누적되도록 해줘.
번역결과 : Please make an Excel macro code. Let's copy the sheet called 'Form' and create the sheet name using the P1 cell value of the 'Form' sheet. And the value of cell P1 on the 'Form' sheet is changed to the existing value plus 1. And place the newly created sheet fourth from the left. Then, enter the values from U13 to AB13 on the 'Form' sheet into A33 to H33 on the 'Performance' sheet and continue to accumulate data downwards.
 

Sub CopyRenameMoveAndEnterData()
    Dim originalSheet As Worksheet
    Dim newSheet As Worksheet
    Dim formSheet As Worksheet
    Dim performanceSheet As Worksheet
    Dim newName As String
    Dim newValue As Long
    Dim lastRow As Long

    ' Set the original sheet
    On Error Resume Next
    Set originalSheet = Sheets("Form")
    On Error GoTo 0

    ' If the original sheet doesn't exist, show a message and exit
    If originalSheet Is Nothing Then
        MsgBox "Sheet 'Form' not found.", vbExclamation
        Exit Sub
    End If

    ' Set the 'Form' sheet
    On Error Resume Next
    Set formSheet = Sheets("Form")
    On Error GoTo 0

    ' If the 'Form' sheet doesn't exist, show a message and exit
    If formSheet Is Nothing Then
        MsgBox "Sheet 'Form' not found.", vbExclamation
        Exit Sub
    End If

    ' Get the current value in cell P1 of the 'Form' sheet
    On Error Resume Next
    newValue = CLng(formSheet.Range("P1").Value)
    On Error GoTo 0

    ' Duplicate the sheet
    originalSheet.Copy After:=Sheets(Sheets.Count)

    ' Set the new sheet
    Set newSheet = ActiveSheet

    ' Get the new sheet name from cell P1 of the 'Form' sheet
    newName = formSheet.Range("P1").Value

    ' Check if the new name is empty
    If newName = "" Then
        MsgBox "Cell P1 on the 'Form' sheet is empty. Please enter a name for the new sheet.", vbExclamation
        newSheet.Delete ' Delete the new sheet if the name is empty
        Exit Sub
    End If

    ' Rename the new sheet to the value in cell P1 of the 'Form' sheet
    newSheet.Name = newName

    ' Increment the value in cell P1 of the 'Form' sheet by 1
    formSheet.Range("P1").Value = newValue + 1

    ' Move the new sheet to be the fourth sheet from the left
    newSheet.Move Before:=Sheets(4)

    ' Set the 'Performance' sheet
    On Error Resume Next
    Set performanceSheet = Sheets("Performance")
    On Error GoTo 0

    ' If the 'Performance' sheet doesn't exist, show a message and exit
    If performanceSheet Is Nothing Then
        MsgBox "Sheet 'Performance' not found.", vbExclamation
        Exit Sub
    End If

    ' Find the last row in column A of the 'Performance' sheet
    lastRow = performanceSheet.Cells(performanceSheet.Rows.Count, "A").End(xlUp).Row

    ' Copy the values from U13 to AB13 on the 'Form' sheet to A33 to H33 on the 'Performance' sheet
    formSheet.Range("U13:AB13").Copy
    performanceSheet.Range("A" & lastRow + 1).PasteSpecial Paste:=xlPasteValues

    ' Activate the original sheet
    originalSheet.Activate
End Sub

 
2. 리셋 매크로
한글 입력 : 엑셀 매크로 코드 만들어줘. '양식'시트의 P1셀 값을 1로 바꿔죠. 그리고 왼쪽에서 네번째부터 오른쪽끝까지의 시트 다 삭제해줘. 그리고 '실적'시트의 A33부터H800까지 데이터를 다 삭제해줘.
번역결과 : Please make an Excel macro code. Change the value of cell P1 in the ‘Form’ sheet to 1. And delete all sheets from the fourth from the left to the end on the right. And delete all data from A33 to H800 in the ‘Performance’ sheet.
 

Sub ResetAndCleanupSheets()
    Dim formSheet As Worksheet
    Dim performanceSheet As Worksheet
    Dim ws As Worksheet

    ' Set the 'Form' sheet
    On Error Resume Next
    Set formSheet = Sheets("Form")
    On Error GoTo 0

    ' If the 'Form' sheet doesn't exist, show a message and exit
    If formSheet Is Nothing Then
        MsgBox "Sheet 'Form' not found.", vbExclamation
        Exit Sub
    End If

    ' Set the value of cell P1 in the 'Form' sheet to 1
    formSheet.Range("P1").Value = 1

    ' Delete all sheets from the fourth from the left to the end on the right
    Application.DisplayAlerts = False
    For Each ws In Sheets
        If ws.Index >= 4 Then
            ws.Delete
        End If
    Next ws
    Application.DisplayAlerts = True

    ' Set the 'Performance' sheet
    On Error Resume Next
    Set performanceSheet = Sheets("Performance")
    On Error GoTo 0

    ' If the 'Performance' sheet doesn't exist, show a message and exit
    If performanceSheet Is Nothing Then
        MsgBox "Sheet 'Performance' not found.", vbExclamation
        Exit Sub
    End If

    ' Delete all data from A33 to H800 in the 'Performance' sheet
    performanceSheet.Range("A33:H800").ClearContents

    ' Activate the 'Form' sheet
    formSheet.Activate
End Sub