FX 용 : 파이썬으로 손익 비율을 계산하는 위젯을 만들어 보았습니다.

13336 단어 투자Tkinter파이썬

개요



거래, 특히 단기 거래를 수행하는 모든 전략은 예상 값 ((총 이익 - 총 손실)/거래 횟수)을 0 이상으로 만드는 수단으로 집계됩니다.
거래의 기대치를 높이려면 승률뿐만 아니라 손익 비율이 중요합니다.
파이썬의 tkinter도 잘 다룰 수 있기를 원했기 때문에 손익 비율을 계산하는 위젯을 만들었습니다.

기본은 root에 객체를 페타페타 붙여 가는



간단하게 구성을 반죽하면, root에 텍스트 박스나 버튼이나 텍스트를 끈적끈적 붙여 가고
동작이나 에러 수정을 한다는 방침으로 합니다.

sample.py
import sys
import tkinter as tk
root = tk.Tk()
root.geometry("450x350") #サイズ
root.title(u"損益比率の計算") #タイトル

#ここにボタンやらテキストボックスを配置していく

root.mainloop() #画面表示

라는 느낌으로・・・.

샘플로 입력한 숫자를 두 배로 하는 위젯 만들기



입력→계산→출력이 원활하게 가면(자) 생각했잖아 시련으로 테스트를 실시했습니다.

twice.py
import sys
import tkinter as tk
root = tk.Tk()
root.geometry("450x350")
root.title(u"損益比率の計算")

def cul(event):
    Entry_Box2.delete(0,tk.END) #ボックスの中身を消去
    a = float(Entry_Box.get()) #ボックス1から取得(float型)
    Entry_Box2.insert(0,a*2) #ボックス2に挿入

Entry_Box= tk.Entry()
Entry_Box.pack()

Button = tk.Button(text=u'2倍')
Button.bind("<Button-1>",cul) #ボタンを押すと関数 culの呼び出しを行う
Button.pack()

Entry_Box2= tk.Entry()
Entry_Box2.pack()

root.mainloop()

시도 결과


버튼 클릭


할 수 있었다.

손익 비율 계산



손익 비율
= 이익 폭/손실 폭
= (확률 - 엔트리 값)/(엔트리 값 - 손실 값)
하지만 스프레드를 고려하면 실질적인 엔트리 값은 엔트리 값 + 스프레드가 되기 때문에

= (이득 값 - (입력 값 + 스프레드))/((입력 값 + 스프레드) - 손실 값)
된다.
이 수식과 비교하여,
엔트리 값, 스프레드, 확률 및 손실 값을 입력하는 텍스트 상자와 버튼을 배치하고,
하단에 계산 결과를 배치했다.

risk-reward.py
import tkinter as tk

root = tk.Tk()
root.title(u"損益比率の計算")
root.geometry("450x320")

#計算+挿入の関数
def culculated(event):
    E = float(Entry_Box.get()) 
    S = float(Spread_Box.get())/100 #pipsの単位変換
    TP = float(TakeProfit_Box.get())
    SL = float(StopLos_Box.get()) 

    ratio = (TP-(E+S))/((E+S)-SL) #レシオの算出

    Result_Box.delete(0,tk.END)
    Result_Box.insert(0,round(ratio,3))

#エントリー
Entry_text = tk.Label(text=u'エントリーポイント') #テキストオブジェクトの生成
Entry_text.pack() #rootに格納
Entry_Box= tk.Entry()
Entry_Box.pack()


#スプレッド
Spread_text = tk.Label(text=u'スプレッド(pips)') #テキストオブジェクトの生成
Spread_text.pack() #rootに格納
Spread_Box = tk.Entry()
Spread_Box.pack()

#利確ポイント
TakeProfit_text = tk.Label(text=u'利確値') #テキストオブジェクトの生成
TakeProfit_text.pack() #rootに格納
TakeProfit_Box = tk.Entry()
TakeProfit_Box.pack()

#損切ポイント
StopLos_text = tk.Label(text=u'損切値') #テキストオブジェクトの生成
StopLos_text.pack() #rootに格納
StopLos_Box = tk.Entry()
StopLos_Box.pack()

#計算ボタン
Button = tk.Button(text=u'リスクリワードレシオの計算', bg='red')
Button.bind("<Button-1>",culculated)
Button.pack()

#結果の表示
Result_Box = tk.Entry()
Result_Box.pack()

root.mainloop()


결과


형태로서는 문제 없을 것 같다.

실제로 값을 넣어 보았습니다.


버튼을 클릭하여 계산 실행



계산할 수 있었다. 100으로 엔트리, 120으로 확실하고, 90으로 손해라면 리스크 리워드 비율은 2.0이라고 알겠네요. 스프레드를 고려하여 약간 떨어진 실제 결과가 표시됩니다.

마지막으로



Web상에는 손익 비율을 계산하는 사이트도 많이 있고 (다음 비율은 대략 보면 알기 때문에) 실용성이 있는지는 모릅니다만 MT4의 옆에 조금 표시시켜 두는 위젯도 있어도 좋다 라고 생각해서 만들었습니다.
좀 더 실용적인 물건을 몇 개 만들 예정입니다.

좋은 웹페이지 즐겨찾기