답변완료
수식 부탁드립니다.
올해도 건승하시고새해 복 많이 받으십시요. 다음 두수식의 변환을 부탁드립니다.(1번)R=RSI(7);우=Eavg(C,5) >Eavg(C,10) AND Eavg(C,20) >Eavg(C,60);A=Highest(H(1),10)<H;B=valuewhen(1,A,H);D=A*(5/100);K=if(A,B,B+D);if(K<K(1),K,0)&&C>O&&R>70 && 우&&V > (Avg(V, 20) * 10) &&거래대금 > (Avg(거래대금, 20) * 10);(2번)R=RSI(7);변=Max(C,O);동=Min(C,O);상단=Highest(변,60);하단=Lowest(동,60);고저=(상단-하단)/하단*100;최종=고저(1)<10 &&crossup(C, 상단(1)) && R>20 &&Vcond = V > (Avg(V, 20) * 10);AmtCond = 거래대금 > (Avg(거래대금, 20) * 10)&&Highest(V,20, 2)<V;최종&&!최종(1);감사드립니다.
답변완료
수식문의드립니다
Input : shortPeriodM(12), longPeriodM(26), PeriodM(9);Var : MACDvM(0), MACDsigM(0),MacdoscM(0),macdRM(0), sigRM(0), oscRM(0) ;Input : 기준선(0), 기준선위(3.5), 기준선아래(3.5), 기준과매도선1(-7.5), 기준과매도선2(-10);Input : shortPeriodS(6), longPeriodS(13), sPeriodS(5);Var : MACDvS(0), MACDsigS(0),macdoscS(0),MACDRS(0), sigRS(0), oscRS(0) ;MACDvM = MACD(shortPeriodM, longPeriodM);MACDsigM = ema(MACDvM,PeriodM);MacdoscM = MACDvM-ema(MACDvM,PeriodM);macdRM = MACDvM/C*100;sigRM = MACDsigM/C*100;oscRM = MacdoscM/C*100;MACDvS = MACD(shortPeriodS, longPeriodS);MACDsigS = ema(MACDvS,sPeriodS);MACDoscS = MACDvS-ema(MACDvS,sPeriodS);macdRS = MACDvS/C*100;sigRS = MACDsigS/C*100;oscRS = MACDoscS/C*100;input : P1(5),P2(10),HL기간(26),변곡기간(3),변곡기간m(5) ;var : A5(0),A10(0),A5H(0),A5L(0),B5DU(False), B10DU(False) ,DL1(0),DL2(0),DL3(0),DL4(0);var : MDmu(False), MDmd(False) ,MDm(False) , MDsu(False), MDsd(False) ,MDs(False) ;A5 = ma(C,P1); A10 = ma(C,P2); A5H = Highest(H,HL기간);# 5봉내 최고가A5L = Lowest(L,HL기간);# 5봉내 최저가B5DU = A5 >= A5[1] and CountIf( A5 < A5[1], 변곡기간 )[1] == 변곡기간) ; B10DU = A10 >= A10[1] and CountIf( A10 < A10[1], 변곡기간 )[1] == 변곡기간 ; MDmu = macdRM >= macdRM[1] and CountIf( macdRM < macdRM[1], 변곡기간m )[1] >= (변곡기간m-2) ; MDmd = macdRM[2] <= macdRM[1] && macdRM[1] > macdRM ;MDm = macdRM[2] > macdRM[1] && macdRM[1] <= macdRM ;MDsu = macdRS >= macdRS[1] and CountIf( macdRS < macdRS[1], 변곡기간m )[1] >= (변곡기간m-2) ; MDsd = macdRS[2] <= macdRS[1] && macdRS[1] > macdRS ;MDs = macdRS[2] > macdRS[1] && macdRS[1] <= macdRS ;if B5DU == true then{ DL1 = A5[1]; DL2 = A5L;}if B10DU == true then{ DL3 = A10[1]; DL4 = A5L;}가. MACD의 첫번째 상승전환 변곡인 MDmu가 발생하면 macdRM[1], macdRM, C 를 저장하고 , MACD의 두번째 상승전환인 MDm가 발생하면 macdRM[1], macdRM, C 를 저장한후, MDmu가 제일먼저 발생하고 그 다음에 MDmd가 발생하고, 다시 MDm가 순서상으로 발생한다면 , 첫번째 변곳과 두번째 변곡시의 조건을 비교하여 매수신호가 발생되게 하여야 한다. 비교조건은 첫번째 변곡시의 macdRM[1]보다 두번째 변곡시의 macdRM[1]가 높거나, 첫번째 변곡시의 macdRM보다 두번째 변곡시의 macdRM가 높은 경우에 매수신호가 발생되게한다.나. MACD의 첫번째 상승전환 변곡인 MDsu가 발생하면 macdRS[1], macdRS, C 를 저장하고 , MACD의 두번째 상승전환인 MDs가 발생하면 macdRS[1], macdRS, C 를 저장한후, MDsu가 제일먼저 발생하고 그 다음에 MDsd가 발생하고, 다시 MDs가 순서상으로 발생한다면 , 첫번째 변곳과 두번째 변곡시의 조건을 비교하여 매수신호가 발생되게 하여야 한다. 비교조건은 첫번째 변곡시의 macdRS[1]보다 두번째 변곡시의 macdRS[1]가 높거나, 첫번째 변곡시의 macdRS보다 두번째 변곡시의 macdRS가 높은 경우에 매수신호가 발생되게한다.1. 신호수식1> <가> 또는 <나>의 조건이 발생되는 캔들에 매수신호 발생하는 수식2. 1의 신호발생이 최근 3봉이내에 1회 있으면서 , DL1 가 최근 5봉이내에 변동이 있고 종가상 DL1 를 돌파하거나, DL3 가 최근 5봉이내에 변동이 있고 DL3 를 돌파하는 캔들에 매수신호. 여기서 돌파라함은 시가종가상으로 잉태한 돌파이어야 한다. - O < DL1 and C > DL1 또는 O < DL3 and C > DL13
답변완료
문의 드립니다.
새해 복 많이 받으시고, 건강과 행복이 늘 함께하시길 바랍니다 ~~현재 가격(또는 캔들)이 아래의 1 라인과 2 라인을 동시에 돌파하거나,1 라인과 3 라인을 동시에 돌파하거나, 1, 2, 3 라인들을 동시에 돌파하는 종목의 검색식을 부탁 드립니다. 1라인. A=avg(c,17);ATR=avg(max(max(h-L,abs(c(1)-h)),abs(c(1)-L)),17);B=ATR*2;D=A+B;E=Bbandsup(17,2);e1=crossup(E,D);e2=crossdown(E,D);e3=crossdown(c,E);valuewhen(1,e1 or e2 or e3,o)2라인. (highest(h,60)+Lowest(L,60))/23라인. A=avg(c,17);ATR=avg(max(max(h-L,abs(c(1)-h)),abs(c(1)-L)),17);B=ATR;D=A+B;감사합니다.
답변완료
함수 문의 드립니다
[시스템지표]k200선물 등가 기준으로 위클리옵션가를 차트우측 여백에 표시하는 로직인데 미완성 입니다. 조언부탁드립니다함수선언 오류----------Option.GetATMCallStrikeOption.GetATMCallAskOption.GetATMPutAsk----로직----/* 프로그램: 시스템(System) 이름: 위클리_선물기준ATM_Code제거 설정: [옵션객체] -> 'KOSPI200 Weekly Option' 선택 필수*/# -----------------------------------------------------------# 변수 선언# -----------------------------------------------------------var : 선물현재가(0), 목표행사가(0);var : 시스템ATM행사가(0), 단계차이(0);var : 콜인덱스(0), 풋인덱스(0);# 가격 저장var : 콜가격(0), 풋가격(0), 양매수합계(0);var : 텍스트_헤더(0), 텍스트_콜(0), 텍스트_풋(0);var : Y축위치(0), 간격(0);# -----------------------------------------------------------# 1. 선물 기준 ATM 행사가 계산# -----------------------------------------------------------선물현재가 = C;목표행사가 = Round(선물현재가 / 2.5, 0) * 2.5;# -----------------------------------------------------------# 2. 옵션 객체와의 괴리 보정 (★중요 수정됨)# -----------------------------------------------------------# [수정] 아래 값이 목표행사가와 같으면 보정이 안됩니다. # 반드시 시스템(지수) 기준 등가를 가져와야 차이를 계산할 수 있습니다.시스템ATM행사가 = Option.GetATMCallStrike(0);# 선물 목표행사가와 시스템 행사가의 차이를 계산단계차이 = (목표행사가 - 시스템ATM행사가) / 2.5;# 콜은 정방향, 풋은 역방향 보정콜인덱스 = 단계차이;풋인덱스 = -단계차이;# -----------------------------------------------------------# 3. 데이터 수신 (호가 평균 방식 - 100% 호환)# -----------------------------------------------------------# 콜가격 계산 (매도+매수)/2if Option.GetATMCallAsk(콜인덱스) > 0 Then 콜가격 = (Option.GetATMCallAsk(콜인덱스) + Option.GetATMCallBid(콜인덱스)) / 2;Else 콜가격 = 0;# 풋가격 계산 (매도+매수)/2if Option.GetATMPutAsk(풋인덱스) > 0 Then 풋가격 = (Option.GetATMPutAsk(풋인덱스) + Option.GetATMPutBid(풋인덱스)) / 2;Else 풋가격 = 0;양매수합계 = 콜가격 + 풋가격;# -----------------------------------------------------------# 4. 화면 출력 (코드 표시 제거됨)# -----------------------------------------------------------간격 = PriceScale * 20;if LastBarOnChart == 1 then { Y축위치 = C; # 텍스트 객체 생성 (최초 1회) if 텍스트_헤더 == 0 then { 텍스트_헤더 = Text_New(NextBarSdate, NextBarStime, Y축위치, ""); Text_SetStyle(텍스트_헤더, 0, 1); Text_SetSize(텍스트_헤더, 12); Text_SetBold(텍스트_헤더, 1); Text_SetColor(텍스트_헤더, RGB(255,255,255)); 텍스트_콜 = Text_New(NextBarSdate, NextBarStime, Y축위치, ""); Text_SetStyle(텍스트_콜, 0, 1); Text_SetSize(텍스트_콜, 12); Text_SetBold(텍스트_콜, 1); Text_SetColor(텍스트_콜, RGB(255,80,80)); 텍스트_풋 = Text_New(NextBarSdate, NextBarStime, Y축위치, ""); Text_SetStyle(텍스트_풋, 0, 1); Text_SetSize(텍스트_풋, 12); Text_SetBold(텍스트_풋, 1); Text_SetColor(텍스트_풋, RGB(100,100,255)); } # 위치 업데이트 Text_SetLocation(텍스트_헤더, NextBarSdate, NextBarStime, Y축위치 + 간격); Text_SetLocation(텍스트_콜, NextBarSdate, NextBarStime, Y축위치); Text_SetLocation(텍스트_풋, NextBarSdate, NextBarStime, Y축위치 - 간격); # 헤더 업데이트 Text_SetString( 텍스트_헤더, "■ 선물기준 등가 [" + NumToStr(목표행사가, 1) + "]\n 합계 : " + NumToStr(양매수합계, 2)); # --- 콜 가격 표시 (코드 제거) --- if 콜가격 > 0 then { Text_SetString(텍스트_콜, "▲ Call : " + NumToStr(콜가격, 2)); } else { # 데이터가 없을 때 깔끔하게 '대기중'만 표시 Text_SetString(텍스트_콜, "▲ Call : 대기중"); } # --- 풋 가격 표시 (코드 제거) --- if 풋가격 > 0 then { Text_SetString(텍스트_풋, "▼ Put : " + NumToStr(풋가격, 2)); } else { Text_SetString(텍스트_풋, "▼ Put : 대기중"); }}