커뮤니티

수식 부탁드립니다

프로필 이미지
네온0609
2023-03-29 14:19:14
1466
글번호 167667
답변완료
수고하십니다 아래수식은 챗gpt dpt에서 나스닥과 다우 페어트레이딩 전략을 추전해 달라고해서 생성된 코딩입니다 예스트레이더로 변환이 가능한지요 input nasdaq = NASDAQ(); input dow = INDU(); input spread_threshold = 50; // 이격 차이의 임계값 def nasdaq_price = close(nasdaq); def dow_price = close(dow); def spread = nasdaq_price - dow_price; plot SpreadLine = spread; SpreadLine.AssignValueColor(if spread > 0 then Color.GREEN else if spread < 0 then Color.RED else Color.GRAY); SpreadLine.SetDefaultColor(Color.WHITE); def spread_mean = SimpleMovingAvg(spread, 50); def spread_std = StDev(spread, 50); def z_score = (spread - spread_mean) / spread_std; def enter_long = z_score < -spread_threshold; def enter_short = z_score > spread_threshold; def exit_long = z_score > 0; def exit_short = z_score < 0; Buy("Long", 1, if enter_long then 100 shares else if exit_long then 0 shares else 100 shares); Sell("Short", 1, if enter_short then 100 shares else if exit_short then 0 shares else 100 shares); 설명 위 코드에서는 먼저 나스닥과 다우의 종가를 nasdaq_price와 dow_price 변수에 저장하고, 이를 뺀 이격 차이를 spread 변수에 저장합니다. 이격 차이의 평균과 표준 편차를 구한 후, Z-score를 계산하여 정규화합니다. 이격 차이의 Z-score가 일정 임계값보다 낮을 때는 나스닥을 매수하고 다우를 공매도, 일정 임계값보다 높을 때는 다우를 매수하고 나스닥을 공매도합니다. 매수 또는 공매도는 100주씩 거래하며, Z-score가 0에 근접하게 되면 포지션을 청산합니다. 위 코드를 참고하여 원하는 변수나 전략을 추가하면서 페어트레이딩 전략을 구현할 수 있습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-30 09:24:16

안녕하세요 예스스탁입니다. 차트에서 주문은 기본차트 종목 하나에만 가능합니다. 2종목에 대해 주문을 내기 위해서는 차트가 2개 필요합니다. 차트1 : 기본종목 나스닥 , 참조데이터 다우 차트2 : 기본종목 다우 , 참조데이터 나스닥 차트 왼쪽 상당의 종목선택버튼 중 왼쪽버튼은 기본종목, 오른쪽은 참조데이타를 추가하는 버튼입니다. 차트1에는 1번식, 차트2에는 2번식을 적용하셔야 합니다. 1 input : spread_threshold(50); var : nasdaq_price(0,Data1); var : dow_price(0,Data2); var : spread(0,Data1),spread_mean(0,Data1),spread_std(0,Data1); var : z_score(0,Data1); nasdaq_price = data1(close); dow_price = data2(close); spread = nasdaq_price - dow_price; spread_mean = data1(ma(spread, 50)); spread_std = data1(Std(spread, 50)); z_score = (spread - spread_mean) / spread_std; if MarketPosition <= 0 and z_score < -spread_threshold Then Buy(); if MarketPosition >= 0 and z_score > spread_threshold Then Sell(); if MarketPosition == 1 and z_score > 0 Then ExitLong(); if MarketPosition == -1 and z_score < 0 Then ExitShort(); 2 input : spread_threshold(50); var : nasdaq_price(0,Data1); var : dow_price(0,Data2); var : spread(0,Data1),spread_mean(0,Data1),spread_std(0,Data1); var : z_score(0,Data1); nasdaq_price = data1(close); dow_price = data2(close); spread = nasdaq_price - dow_price; spread_mean = data1(ma(spread, 50)); spread_std = data1(Std(spread, 50)); z_score = (spread - spread_mean) / spread_std; if MarketPosition >= 0 and z_score < -spread_threshold Then Sell(); if MarketPosition <= 0 and z_score > spread_threshold Then Buy(); if MarketPosition == -1 and z_score > 0 Then ExitShort(); if MarketPosition == 1 and z_score < 0 Then ExitLong(); 즐거운 하루되세요 > 네온0609 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다 > 수고하십니다 아래수식은 챗gpt dpt에서 나스닥과 다우 페어트레이딩 전략을 추전해 달라고해서 생성된 코딩입니다 예스트레이더로 변환이 가능한지요 input nasdaq = NASDAQ(); input dow = INDU(); input spread_threshold = 50; // 이격 차이의 임계값 def nasdaq_price = close(nasdaq); def dow_price = close(dow); def spread = nasdaq_price - dow_price; plot SpreadLine = spread; SpreadLine.AssignValueColor(if spread > 0 then Color.GREEN else if spread < 0 then Color.RED else Color.GRAY); SpreadLine.SetDefaultColor(Color.WHITE); def spread_mean = SimpleMovingAvg(spread, 50); def spread_std = StDev(spread, 50); def z_score = (spread - spread_mean) / spread_std; def enter_long = z_score < -spread_threshold; def enter_short = z_score > spread_threshold; def exit_long = z_score > 0; def exit_short = z_score < 0; Buy("Long", 1, if enter_long then 100 shares else if exit_long then 0 shares else 100 shares); Sell("Short", 1, if enter_short then 100 shares else if exit_short then 0 shares else 100 shares); 설명 위 코드에서는 먼저 나스닥과 다우의 종가를 nasdaq_price와 dow_price 변수에 저장하고, 이를 뺀 이격 차이를 spread 변수에 저장합니다. 이격 차이의 평균과 표준 편차를 구한 후, Z-score를 계산하여 정규화합니다. 이격 차이의 Z-score가 일정 임계값보다 낮을 때는 나스닥을 매수하고 다우를 공매도, 일정 임계값보다 높을 때는 다우를 매수하고 나스닥을 공매도합니다. 매수 또는 공매도는 100주씩 거래하며, Z-score가 0에 근접하게 되면 포지션을 청산합니다. 위 코드를 참고하여 원하는 변수나 전략을 추가하면서 페어트레이딩 전략을 구현할 수 있습니다.