커뮤니티

수식 부탁드립니다

프로필 이미지
네온0609
2024-08-20 09:26:10
880
글번호 182678
답변완료
수고하십니다 다음자료 시스템거래수식으로 가능한지요? 수식 부탁드립니다 ChatGPT 생성자료입니다 매수 전략 (Long Entry): 조건 1: 현재 30분봉의 종가가 S1 지지선 아래에서 마감하고, 다음 30분봉에서 변곡점(Pivot) 위로 종가가 올라갈 경우 매수 진입. 조건 2: 매수 후 목표가는 R1 저항선으로 설정하고, 손절가는 S2 지지선으로 설정. 매도 전략 (Short Entry): 조건 1: 현재 30분봉의 종가가 R1 저항선 위에서 마감하고, 다음 30분봉에서 변곡점(Pivot) 아래로 종가가 내려갈 경우 매도 진입. 조건 2: 매도 후 목표가는 S1 지지선으로 설정하고, 손절가는 R2 저항선으로 설정. python으로 작성 코드 복사 import pandas as pd # CSV 파일에서 나스닥 30분봉 데이터를 불러오기 # 데이터는 'timestamp', 'open', 'high', 'low', 'close', 'volume' 등의 열을 포함해야 합니다. data = pd.read_csv('nasdaq_30min.csv', parse_dates=['timestamp']) # 변곡점, 지지선, 저항선 계산 함수 def calculate_pivot(high, low, close): P = (high + low + close) / 3 R1 = 2 * P - low S1 = 2 * P - high R2 = P + (high - low) S2 = P - (high - low) return P, R1, S1, R2, S2 # 30분봉 데이터에 적용하여 각 30분봉에 대한 변곡점과 지지/저항선 계산 data['pivot'], data['R1'], data['S1'], data['R2'], data['S2'] = zip(*data.apply(lambda row: calculate_pivot(row['high'], row['low'], row['close']), axis=1)) # 매수 및 매도 신호 생성 # 매수 신호: 현재 30분봉이 S1 지지선 아래에서 마감 후 다음 30분봉이 변곡점 위로 올라갈 때 # 매도 신호: 현재 30분봉이 R1 저항선 위에서 마감 후 다음 30분봉이 변곡점 아래로 내려갈 때 data['signal'] = 0 # 기본값은 신호 없음 # 매수 신호 조건 data.loc[(data['close'].shift(1) < data['S1'].shift(1)) & (data['close'] > data['pivot']), 'signal'] = 1 # 매수 신호 # 매도 신호 조건 data.loc[(data['close'].shift(1) > data['R1'].shift(1)) & (data['close'] < data['pivot']), 'signal'] = -1 # 매도 신호 # 결과 출력: 각 30분봉에 대해 매수 및 매도 신호를 출력 print(data[['timestamp', 'open', 'high', 'low', 'close', 'pivot', 'R1', 'S1', 'R2', 'S2', 'signal']]) # 매수 및 매도 신호 개수 확인 buy_signals = data['signal'].value_counts().get(1, 0) sell_signals = data['signal'].value_counts().get(-1, 0) print(f"매수 신호 개수: {buy_signals}") print(f"매도 신호 개수: {sell_signals}")
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-08-20 13:45:58

안녕하세요 예스스탁입니다. Var : Pv(0),R1(0),R2(0),S1(0),S2(0); Pv = (DayHigh(1)+DayLow(1)+DayClose(1))/3; R1 = 2*Pv-DayLow(1); R2 = Pv+DayHigh(1)-DayLow(1); S1 = 2*Pv-DayHigh(1); S2 = Pv-DayHigh(1)+DayLow(1); if MarketPosition <= 0 and C > pv and C[1] < S1[1] Then Buy(); if MarketPosition == 1 Then { if CrossUp(C,R1) Then ExitLong(); if CrossDown(c,S2) Then ExitLong(); } if MarketPosition >= 0 and C < pv and C[1] > R1[1] Then Sell(); if MarketPosition == -1 Then { if CrossDown(C,S1) Then ExitShort(); if CrossUp(c,R2) Then ExitShort(); } 즐거운 하루되세요 > 네온0609 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다 > 수고하십니다 다음자료 시스템거래수식으로 가능한지요? 수식 부탁드립니다 ChatGPT 생성자료입니다 매수 전략 (Long Entry): 조건 1: 현재 30분봉의 종가가 S1 지지선 아래에서 마감하고, 다음 30분봉에서 변곡점(Pivot) 위로 종가가 올라갈 경우 매수 진입. 조건 2: 매수 후 목표가는 R1 저항선으로 설정하고, 손절가는 S2 지지선으로 설정. 매도 전략 (Short Entry): 조건 1: 현재 30분봉의 종가가 R1 저항선 위에서 마감하고, 다음 30분봉에서 변곡점(Pivot) 아래로 종가가 내려갈 경우 매도 진입. 조건 2: 매도 후 목표가는 S1 지지선으로 설정하고, 손절가는 R2 저항선으로 설정. python으로 작성 코드 복사 import pandas as pd # CSV 파일에서 나스닥 30분봉 데이터를 불러오기 # 데이터는 'timestamp', 'open', 'high', 'low', 'close', 'volume' 등의 열을 포함해야 합니다. data = pd.read_csv('nasdaq_30min.csv', parse_dates=['timestamp']) # 변곡점, 지지선, 저항선 계산 함수 def calculate_pivot(high, low, close): P = (high + low + close) / 3 R1 = 2 * P - low S1 = 2 * P - high R2 = P + (high - low) S2 = P - (high - low) return P, R1, S1, R2, S2 # 30분봉 데이터에 적용하여 각 30분봉에 대한 변곡점과 지지/저항선 계산 data['pivot'], data['R1'], data['S1'], data['R2'], data['S2'] = zip(*data.apply(lambda row: calculate_pivot(row['high'], row['low'], row['close']), axis=1)) # 매수 및 매도 신호 생성 # 매수 신호: 현재 30분봉이 S1 지지선 아래에서 마감 후 다음 30분봉이 변곡점 위로 올라갈 때 # 매도 신호: 현재 30분봉이 R1 저항선 위에서 마감 후 다음 30분봉이 변곡점 아래로 내려갈 때 data['signal'] = 0 # 기본값은 신호 없음 # 매수 신호 조건 data.loc[(data['close'].shift(1) < data['S1'].shift(1)) & (data['close'] > data['pivot']), 'signal'] = 1 # 매수 신호 # 매도 신호 조건 data.loc[(data['close'].shift(1) > data['R1'].shift(1)) & (data['close'] < data['pivot']), 'signal'] = -1 # 매도 신호 # 결과 출력: 각 30분봉에 대해 매수 및 매도 신호를 출력 print(data[['timestamp', 'open', 'high', 'low', 'close', 'pivot', 'R1', 'S1', 'R2', 'S2', 'signal']]) # 매수 및 매도 신호 개수 확인 buy_signals = data['signal'].value_counts().get(1, 0) sell_signals = data['signal'].value_counts().get(-1, 0) print(f"매수 신호 개수: {buy_signals}") print(f"매도 신호 개수: {sell_signals}")