답변완료
수식 부탁드립니다
수고하십니다
아래수식은 챗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에 근접하게 되면 포지션을 청산합니다.
위 코드를 참고하여 원하는 변수나 전략을 추가하면서 페어트레이딩 전략을 구현할 수 있습니다.
2023-03-29
1465
글번호 167667
시스템
답변완료
함수요청
안녕하세요?
아래의 전략에 대해 스크립트 작성 요청드립니다.
나스닥 선물 5분봉으로 일중거래를 하고자 합니다.
1. 전일 음봉이면 전일 시가 돌파 완성시 익봉 시가 매수 진입
2. 전일 음봉이면 전일 종가 이탈 완성시 익봉 시가 매도 진입
3. 전일 양봉이면 전일 종가 돌파 완성시 익봉 시가 매수 진입
4. 전일 양봉이면 전일 시가 이탈 완성시 익봉 시가 매도 진입
전일 저가 이탈시 매도 청산
전일 고가 돌파시 매수 청산
(돌파와 이탈의 의미가 두 값을 비교하여 크다와 작다로 정의, 반드시 크로스의 개념이 아님)
당일 진입조건 1~4까지 최대 각 1번씩만 적용합니다.
즉 당일 신호가 없거나 (1), (1,2), (1,2,3), (1,2,3,4,) (2), (2,3), (2,4), (2,3,4), (3), (3,4), (4) 가운데 한개입니다.
2023-03-29
1188
글번호 167661
시스템
답변완료
실시간 마크체크
안녕하세요
아래파일을 1분봉에서 돌려보면 실시간으로 마크가 안나오고 2-3봉후에
마크가 나오는것 같은데 실시간으로 나오게 할수없는지 혹시 제가 잘못알고있는지
확인 부탁드립니다
var : TextID(0);
var1 = ma(c,5);
var2 = ma(c,20);
if CrossUp(var1,Var2) Then {
TextID = Text_New(sdate,time,H-0.5,"◆");
Text_SetStyle(TextID, 1, 1);
Text_SetColor(TextID,Red);
}
if CrossDown(var1,Var2) Then{
TextID = Text_New(sdate,time,H+0.5,"◆");
Text_SetStyle(TextID, 1, 1);
Text_SetColor(TextID,BLUE);
}
2023-03-29
1798
글번호 167659
지표