커뮤니티

함수변환요청

프로필 이미지
통큰베팅
2017-04-24 14:33:53
190
글번호 109106
답변완료
안녕하세요? 아래는 키움에서 사용하였던 스크립트입니다. YT로 변환 부탁드립니다. Vars : TickValue( 0 ), RSI_value( 0 ), RSI_period( 14 ), MACD_OSC_value( 0 ), MACD_period1( 12 ), MACD_period2( 26 ), MACD_signal_period( 9 ), H_value1( 0 ), H_bar1( 0 ), L_value1( 0 ), L_bar1( 0 ), H_value2( 0 ), H_bar2( 0 ), L_value2( 0 ), L_bar2( 0 ), ShortPeriod( 9 ), // 전환선 기간 LongPeriod( 26 ); // 기준선 기간 // 호가단위 TickValue = OneTick * PriceScale; // RSI RSI_value = RSI(C, RSI_period); // MACD 오실레이터 v0 = MACD(C, MACD_period1, MACD_period2); // MACD value v1 = Ema(v0, MACD_signal_period); // MACD 시그널 MACD_Osc_value = v0 - v1; // MACD 오실레이터 // 전환선 & 기준선 HighestLowest 주어진 기간동안의 극단적인 최고가, 최저가를 반환 //ShortPeriod 기간 동안 고가(H) 중에 최고가를 찾아내어 그 값은 H_value1 값에 저장 //Shortperiod 기간 동안 저가(L) 중에 최저가를 찾아내어 그 값은 L_value1 값에 저장 //위의 최고가와 최저가를 바탕으로 아래와 같이 전환성과 기준선을 계산 highestlowest(H, L, ShortPeriod, H_value1, H_bar1, L_value1, L_bar1); highestlowest(H, L, LongPeriod, H_value2, H_bar2, L_value2, L_bar2); Value1 = (H_value1 + L_value1)/2; // 전환선 9개의 봉 동안 최고가 와 최저가의 중간값 Value2 = (H_value2 + L_value2)/2; // 기준선 26개의 봉 동안 최고가 와 최저가의 중간값 // 매수 진입 If Value1 > Value2 //전환선이 기준선보다 크고 And MACD_Osc_value > 0 //오실레이터 값이 0보다 크고 And CrossUp(RSI_value, 70) //RSI가 70을 상향 돌파 Then Buy("매수"); // 매도 진입 If Value1 < Value2 //전환선이 기준선보다 작고 And MACD_Osc_value < 0 //오실레이터 값이 0보다 작고 And CrossDown(RSI_value, 30) //RSI가 30을 하향 이탈 Then Sell("매도"); // 이하 청산 : 1계약당 손익이 10틱보다 크고 If ContractProfit > TickValue * 10 Then Begin // 매수 청산 : RSI가 70을 하향 이탈 If CrossDown(RSI_value, 70) then ExitLong("매수청산"); // 매도 청산 : RSI가 30을 상향 돌파 If CrossUp(RSI_value, 30) Then ExitShort("매도청산"); End; // 손절 10틱 SetStopLoss(TickValue * 10);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-25 11:25:04

안녕하세요 예스스탁입니다. Vars : TickValue( 0 ), RSI_value( 0 ), RSI_period( 14 ), MACD_OSC_value( 0 ), MACD_period1( 12 ), MACD_period2( 26 ), MACD_signal_period( 9 ), H_value1( 0 ), H_bar1( 0 ), L_value1( 0 ), L_bar1( 0 ), H_value2( 0 ), H_bar2( 0 ), L_value2( 0 ), L_bar2( 0 ), ShortPeriod( 9 ), // 전환선 기간 LongPeriod( 26 ); // 기준선 기간 var : V0(0),V1(0); // 호가단위 TickValue = PriceScale; // RSI RSI_value = RSI(RSI_period); // MACD 오실레이터 v0 = MACD(MACD_period1, MACD_period2); // MACD value v1 = Ema(v0, MACD_signal_period); // MACD 시그널 MACD_Osc_value = v0 - v1; // MACD 오실레이터 Value1 = (highest(H,ShortPeriod) + lowest(L,ShortPeriod))/2; // 전환선 9개의 봉 동안 최고가 와 최저가의 중간값 Value2 = (highest(H,LongPeriod) + lowest(L,LongPeriod))/2; // 기준선 26개의 봉 동안 최고가 와 최저가의 중간값 // 매수 진입 If Value1 > Value2 //전환선이 기준선보다 크고 And MACD_Osc_value > 0 //오실레이터 값이 0보다 크고 And CrossUp(RSI_value, 70) //RSI가 70을 상향 돌파 Then Buy("매수"); // 매도 진입 If Value1 < Value2 //전환선이 기준선보다 작고 And MACD_Osc_value < 0 //오실레이터 값이 0보다 작고 And CrossDown(RSI_value, 30) //RSI가 30을 하향 이탈 Then Sell("매도"); // 이하 청산 : 1계약당 손익이 10틱보다 크고 If PositionProfit > TickValue * 10 Then Begin // 매수 청산 : RSI가 70을 하향 이탈 If CrossDown(RSI_value, 70) then ExitLong("매수청산"); // 매도 청산 : RSI가 30을 상향 돌파 If CrossUp(RSI_value, 30) Then ExitShort("매도청산"); End; // 손절 10틱 SetStopLoss(TickValue * 10,PointStop); 즐거운 하루되세요 > 통큰베팅 님이 쓴 글입니다. > 제목 : 함수변환요청 > 안녕하세요? 아래는 키움에서 사용하였던 스크립트입니다. YT로 변환 부탁드립니다. Vars : TickValue( 0 ), RSI_value( 0 ), RSI_period( 14 ), MACD_OSC_value( 0 ), MACD_period1( 12 ), MACD_period2( 26 ), MACD_signal_period( 9 ), H_value1( 0 ), H_bar1( 0 ), L_value1( 0 ), L_bar1( 0 ), H_value2( 0 ), H_bar2( 0 ), L_value2( 0 ), L_bar2( 0 ), ShortPeriod( 9 ), // 전환선 기간 LongPeriod( 26 ); // 기준선 기간 // 호가단위 TickValue = OneTick * PriceScale; // RSI RSI_value = RSI(C, RSI_period); // MACD 오실레이터 v0 = MACD(C, MACD_period1, MACD_period2); // MACD value v1 = Ema(v0, MACD_signal_period); // MACD 시그널 MACD_Osc_value = v0 - v1; // MACD 오실레이터 // 전환선 & 기준선 HighestLowest 주어진 기간동안의 극단적인 최고가, 최저가를 반환 //ShortPeriod 기간 동안 고가(H) 중에 최고가를 찾아내어 그 값은 H_value1 값에 저장 //Shortperiod 기간 동안 저가(L) 중에 최저가를 찾아내어 그 값은 L_value1 값에 저장 //위의 최고가와 최저가를 바탕으로 아래와 같이 전환성과 기준선을 계산 highestlowest(H, L, ShortPeriod, H_value1, H_bar1, L_value1, L_bar1); highestlowest(H, L, LongPeriod, H_value2, H_bar2, L_value2, L_bar2); Value1 = (H_value1 + L_value1)/2; // 전환선 9개의 봉 동안 최고가 와 최저가의 중간값 Value2 = (H_value2 + L_value2)/2; // 기준선 26개의 봉 동안 최고가 와 최저가의 중간값 // 매수 진입 If Value1 > Value2 //전환선이 기준선보다 크고 And MACD_Osc_value > 0 //오실레이터 값이 0보다 크고 And CrossUp(RSI_value, 70) //RSI가 70을 상향 돌파 Then Buy("매수"); // 매도 진입 If Value1 < Value2 //전환선이 기준선보다 작고 And MACD_Osc_value < 0 //오실레이터 값이 0보다 작고 And CrossDown(RSI_value, 30) //RSI가 30을 하향 이탈 Then Sell("매도"); // 이하 청산 : 1계약당 손익이 10틱보다 크고 If ContractProfit > TickValue * 10 Then Begin // 매수 청산 : RSI가 70을 하향 이탈 If CrossDown(RSI_value, 70) then ExitLong("매수청산"); // 매도 청산 : RSI가 30을 상향 돌파 If CrossUp(RSI_value, 30) Then ExitShort("매도청산"); End; // 손절 10틱 SetStopLoss(TickValue * 10);