커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
4510
글번호 230811
지표
답변완료

변동폭을 시간주기로

안녕하세요 관리자님!! 오늘 많이 문의드리네요 죄송합니다.. 아래지표는 변동폭을 표시하는 보내주신 수식입니다. 이 변동폭에 시간을 첨가하고 싶습니다. 4시간마다 바뀌는 변동폭을 구하고 싶습니다. 번거롭더라도 수정부탁드립니다. 감사합니다. -아 래- input : P(520);#10년 520주 var : cnt(0); Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0); Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0); var : sum1(0),Sqrt1(0),ma1(0),Stdv1(0); var : sum2(0),Sqrt2(0),ma2(0),stdv2(0); var : sum3(0),Sqrt3(0),ma3(0),Stdv3(0); var : sum4(0),Sqrt4(0),ma4(0),Stdv4(0); var : sum5(0),Sqrt5(0),ma5(0),Stdv5(0); if bdate != bdate[1] then { if DayOfWeek(bdate) == 1 Then { for cnt = 1 to 599 { WH1[cnt] = WH1[cnt-1][1]; WL1[cnt] = WL1[cnt-1][1]; } } if DayOfWeek(bdate) == 2 Then { for cnt = 1 to 599 { WH2[cnt] = WH2[cnt-1][1]; WL2[cnt] = WL2[cnt-1][1]; } } if DayOfWeek(bdate) == 3 Then { for cnt = 1 to 599 { WH3[cnt] = WH3[cnt-1][1]; WL3[cnt] = WL3[cnt-1][1]; } } if DayOfWeek(bdate) == 4 Then { for cnt = 1 to 599 { WH4[cnt] = WH4[cnt-1][1]; WL4[cnt] = WL4[cnt-1][1]; } } if DayOfWeek(bdate) == 5 Then { for cnt = 1 to 599 { WH5[cnt] = WH5[cnt-1][1]; WL5[cnt] = WL5[cnt-1][1]; } } } if DayOfWeek(bdate) == 1 Then { WH1[0] = DayHigh; WL1[0] = DayLow; } if DayOfWeek(bdate) == 2 Then { WH2[0] = DayHigh; WL2[0] = DayLow; } if DayOfWeek(bdate) == 3 Then { WH3[0] = DayHigh; WL3[0] = DayLow; } if DayOfWeek(bdate) == 4 Then { WH4[0] = DayHigh; WL4[0] = DayLow; } if DayOfWeek(bdate) == 5 Then { WH5[0] = DayHigh; WL5[0] = DayLow; } if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1 + (WH1[cnt]-WL1[cnt]); } ma1 = sum1/P; Sqrt1 = 0; For cnt = 0 To P - 1 { Sqrt1 = Sqrt1 + ((WH1[cnt]-WL1[cnt]) - ma1)^2; } Stdv1 = SquareRoot(Sqrt1/ P); plot1(ma1); plot2(ma1+Stdv1*2); plot3(ma1*0.7); plot4((ma1+Stdv1*2)*0.7); } if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then { sum2 = 0; for cnt = 0 to P-1 { sum2 = sum2 + (WH2[cnt]-WL2[cnt]); } ma2= sum2/P; Sqrt2= 0; For cnt = 0 To P - 1 { Sqrt2 = Sqrt2 + ((WH2[cnt]-WL2[cnt]) - ma2)^2; } Stdv2 = SquareRoot(Sqrt2/ P); plot1(ma2); plot2(ma2+Stdv2*2); plot3(ma2*0.7); plot4((ma2+Stdv2*2)*0.7); } if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then { sum3 = 0; for cnt = 0 to P-1 { sum3 = sum3 + (WH3[cnt]-WL3[cnt]); } ma3= sum3/P; Sqrt3 = 0; For cnt = 0 To P - 1 { Sqrt3 = Sqrt3 + ((WH3[cnt]-WL3[cnt]) - ma3)^2; } Stdv3 = SquareRoot(Sqrt3/ P); plot1(ma3); plot2(ma3+Stdv3*2); plot3(ma3*0.7); plot4((ma3+Stdv3*2)*0.7); } if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then { sum4 = 0; for cnt = 0 to P-1 { sum4 = sum4 + (WH4[cnt]-WL4[cnt]); } ma4= sum4/P; Sqrt4 = 0; For cnt = 0 To P - 1 { Sqrt4 = Sqrt4 + ((WH4[cnt]-WL4[cnt]) - ma4)^2; } Stdv4 = SquareRoot(Sqrt4/ P); plot1(ma4); plot2(ma4+Stdv4*2); plot3(ma4*0.7); plot4((ma4+Stdv4*2)*0.7); } if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then { sum5 = 0; for cnt = 0 to P-1 { sum5 = sum5 + (WH5[cnt]-WL5[cnt]); } ma5= sum5/P; Sqrt5 = 0; For cnt = 0 To P - 1 { Sqrt5 = Sqrt5 + ((WH5[cnt]-WL5[cnt]) - ma5)^2; } Stdv5 = SquareRoot(Sqrt5/ P); plot1(ma5); plot2(ma5+Stdv5*2); plot3(ma5*0.7); plot4((ma5+Stdv5*2)*0.7); } plot5(DayHigh-daylow,"당일변동폭");
프로필 이미지
카카
2019-03-23
393
글번호 127339
지표
답변완료

이것도 수정부탁드립니다

정말 감사합니다 한가지만 더 추가부탁드릴께요 시간을 설정이 안되어있는데 아침 9시부터 새벽 2시까지 설정 추가 부탁드릴께요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템문의합니다 > 안녕하세요 예스스탁입니다. if MarketPosition >= 0 and H < dayopen+PriceScale*20 Then sell("s",AtLimit,dayopen+PriceScale*20,2); if MarketPosition == -1 Then { if CurrentContracts > CurrentContracts[1] Then { Condition1 = false; Condition2 = false; } if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "sx1" Then Condition1 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "sx2" Then Condition2 = true; if Condition1 == false Then ExitShort("sx1",atlimit,AvgEntryPrice-PriceScale*10,"",Floor(CurrentContracts*0.5),1); if Condition2 == false Then ExitShort("sx2",atlimit,AvgEntryPrice-PriceScale*20); sell("ss",AtLimit,LatestEntryPrice(0)+PriceScale*30,CurrentContracts*2); } if MarketPosition <= 0 and L > dayopen-PriceScale*20 Then Buy("b",AtLimit,dayopen-PriceScale*20,2); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { Condition1 = false; Condition2 = false; } if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx1" Then Condition1 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx2" Then Condition2 = true; if Condition1 == false Then ExitLong("bx1",atlimit,AvgEntryPrice-PriceScale*10,"",Floor(CurrentContracts*0.5),1); if Condition2 == false Then ExitLong("bx2",atlimit,AvgEntryPrice-PriceScale*20); Buy("bb",AtLimit,LatestEntryPrice(0)-PriceScale*30,CurrentContracts*2); } 즐거운 하루되세요 > 초보트레이더11 님이 쓴 글입니다. > 제목 : 시스템문의합니다 > 당일 시가대비 20틱위에서 매도2계약들어가서 진입가 대비 10틱 20틱에서 1계약씩청산하고 청산이 안됐을시 50틱에서 추가로 가지고 있는 수량대비 2배로 추가매도하고 평단가 대비 10틱 20틱에서 반 반 청산하고 또 청산이 안됐을 경우 80틱에서 추가로 가지고있는 수량대비 2배로 추가매도해서 평단가 대비 10틱 20틱에서 반 반씩청산 하는시스템식을 만들고 싶습니다 그렇게 각 30틱마다 진입이 되겠끔해서 500틱까지 반복이 되겠끔 하고 싶습니다 매수도 마찬가지로요 만약 20틱에서 진입해서 다 청산이 되면 다시 20틱에 오면 매도가 되겠끔 50틱에서 추가로 들어가서 청산이 되면 다시 50틱에서도 진입이 &#46124;으면 좋겠습니다 단 진입이 되어있으면 추가 진입은 금지이고 각 진입이된 다음 30틱에서 진입이 되겠끔 부탁드립니다 만약 1계약이 청산된 상태라면 1계약은 추가로 진입가능하고요
프로필 이미지
초보트레이더11
2019-03-23
370
글번호 127338
시스템
답변완료

지표수정부탁드려요

라인에 지표이름넣으려면 어떻게 해야되죠? 0.618 라인에 0.618이라고 이름을 넣고 싶은데요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 피보나치값지표표현부탁합니다 > 안녕하세요 예스스탁입니다. 1 var1 = DayHigh(1)-DayLow(1); plot1(DayLow(1)+var1*0.000); plot2(DayLow(1)+var1*0.118); plot3(DayLow(1)+var1*0.236); plot4(DayLow(1)+var1*0.382); plot5(DayLow(1)+var1*0.500); plot6(DayLow(1)+var1*0.618); plot7(DayLow(1)+var1*0.764); plot8(DayLow(1)+var1*0.882); plot9(DayLow(1)+var1*1.000); plot10(DayLow(1)+var1*1.236); plot11(DayLow(1)+var1*1.382); plot12(DayLow(1)+var1*1.500); plot13(DayLow(1)+var1*1.618); plot14(DayLow(1)+var1*1.764); plot15(DayLow(1)+var1*2.000); plot16(DayLow(1)-var1*0.236); plot17(DayLow(1)-var1*0.382); plot18(DayLow(1)-var1*0.500); plot19(DayLow(1)-var1*0.618); plot20(DayLow(1)-var1*1.000); 2 var1 = DayHigh(0)-DayLow(0); plot1(DayLow(0)+var1*0.000); plot2(DayLow(0)+var1*0.118); plot3(DayLow(0)+var1*0.236); plot4(DayLow(0)+var1*0.382); plot5(DayLow(0)+var1*0.500); plot6(DayLow(0)+var1*0.618); plot7(DayLow(0)+var1*0.764); plot8(DayLow(0)+var1*0.882); plot9(DayLow(0)+var1*1.000); 즐거운 하루되세요 > 초보트레이더11 님이 쓴 글입니다. > 제목 : 피보나치값지표표현부탁합니다 > 1)전일기준피보나치값 0 0.118 0.236 0.382 0.5 0.618 0.764 0.882 1.0 1.236 1.382. 1.5 1.618. 1.764. 2.0 -0.236 -0.382 -0.5 -0.618 -1.0 이렇게 나오게 지표부탁합니다 2)당일피보나치값 0 0.118 0.236 0.382 0.5 0.618 0.764 0.882 1 이렇게 나오게 표현부탁드려요
프로필 이미지
초보트레이더11
2019-03-23
399
글번호 127337
지표
답변완료

시스템식 수정부탁드려요

작동을 해보니 한번밖에 매매가 안되어서요 반복적으로 라인 값에 닿으면 매수매도가 계속 될수는 없는건가요? 1)예를 들어 시가가 피봇 기준선보다 위에 있으면 피봇기준선에 닿을때마다 매수하고(1계약이 들어가 있으면 추가진입이 안되고) 1차지지값에서 추가 매수(추가진입이 된뒤에는 다시 진입이 안되고) 2지지값에서 추가매수가 되었으면 합니다 시가가 피봇기준선보다 보다 아래에 있으면 피봇기준선에 닿을때마다 매도가 계속 되고(1계약이 들어가 있으면 추가진입이 안되고) 하는식으로... 시가가 위에 있던 아래에 있던 1저항 2저항 1지지 2지지에 오면 매수매도가 자동적으로 되게는 안되는건가요? 2)그리고 피봇저항지지값을 3차저항 3차지지값까지 넣고 싶습니다 3)피봇기준선에서나 1차저항지지 2차저항지지 값에서 매수나 매도포지션이 청산이 안됐을 경우 각 저항마다 보유하고 있는 수량의 배수보다 1계약이 더 많게 진입하고 싶습니다 3차저항 지지값까지 예를 들어 피봇기준선에서 1계약이 들어가서 청산이 안되면 1차 저항에서 3계약 1차저항에서 청산이 안되면 2차에서 9계약 3차에서 23계약 이렇게 진입이 됐으면 합니다 처음 피봇기준선에서 매수나 매도를 진입할시 2계약으로 하고 청산은 0.236(매수1계약청산)이나 0.764(매도1계약청산)에서 1계약 0.382(매수나머지청산)나 0.618(매도나머지청산)에서 나머지 청산하고싶습니다 또 청산은 각 추가로 매수매도진입된 가격에서 0.236(매수청산)이나 0.764(매도청산)에 도달 했을&#46468; 수익이면 가지고있는 물량에 반을 청산하고 0.382(매수청산)이나 0.618(매도청산)에서 나머지반 0.5(매수매도청산)에서 전부청산했으면 합니다 만약 0.236이나 0.764가 수익이 아닐시 그 위에 0.382(매수청산)나 0.618(매도청산)에서 반청산하고 그위에서 0.5(매수매도청산)나머지 반 청산 0.382(매도청산)나 0.618(매수청산)에서 전부청산했으면합니다 또 0.236이나 0.764에서반을 청산한 뒤에 더이상 올라가거나 내려가지 않을때에는 청산한 가격보다 10틱이 밀리면 전부 청산이 되겠끔 부탁드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 부탁드립니다 > 안녕하세요 예스스탁입니다. Var : Pivot(0),R1(0),R2(0),S1(0),S2(0); if sdate != sdate[1] Then SetStopEndofday(050000); if bdate != bdate[1] Then SetStopEndofday(0); Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3; R1 = 2*Pivot-DayLow(1); R2 = Pivot+DayHigh(1)-DayLow(1); S1 = 2*Pivot-DayHigh(1); S2 = Pivot-DayHigh(1)+DayLow(1); var1 = DayHigh-daylow; if MarketPosition <= 0 and dayopen > pivot and DayLow > Pivot Then buy("b1",atlimit,pivot,1); if MarketPosition == 1 Then { if MaxEntries == 1 Then { if DayLow > S1 Then { buy("b2",atlimit,S1,1); } } if MaxEntries == 2 Then { if DayLow > S2 Then buy("b3",atlimit,S2,1); } ExitLong("bx1",AtLimit,daylow+var1*0.236,"b1"); ExitLong("bx2",AtLimit,daylow+var1*0.382,"b2"); ExitLong("bx3",AtLimit,daylow+var1*0.500,"b3"); } if MarketPosition >= 0 and dayopen < pivot and DayHigh < Pivot Then Sell("s1",atlimit,pivot,1); if MarketPosition == -1 Then { if MaxEntries == 1 Then { if DayHigh < R1 Then { sell("s2",atlimit,R1,1); } } if MaxEntries == 2 Then { if DayHigh < R2 Then sell("s3",atlimit,R2,1); } ExitShort("sx1",AtLimit,DayHigh-var1*0.236,"s1"); ExitShort("sx2",AtLimit,DayHigh-var1*0.382,"s2"); ExitShort("sx3",AtLimit,DayHigh-var1*0.500,"s3"); } 즐거운 하루되세요 > 초보트레이더11 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다 > 항상 감사합니다 아래의 사항을 시스템식으로 표현이 가능한지요 피봇값 기준으로 매수매도하는식입니다 1)시가가 피봇기준선보다 위에서 시작하면 피봇기준선값에 오면 매수1계약하고 청산은 당일피보나치값 0.236에서 청산 만약 0.236에 오지않아서 청산이 안됐을시 다음 피봇1차 지지값에서 추가로 매수1계약을 하고 당일 피보나치값 0.236에서 1계약 청산 0.382에서 나머지 한계약청산 위 사항에서도 청산이 안됐을시 다음 피봇2차지지값에서 추가로 매수 1계약 더하고 당일 피보나치 0.236에서 1계약청산 0.382에서1계약청산 0.5에서 나머지 청산 매도는 위에 사항 반대로 시가가 피봇 기준선 밑에서 시작했을때 피봇기준선값에 오면 매도1계약이 들어가서 위 사항과 똑같이 될수있으면 합니다 시간은 아침 09시부터 다음날 새벽05시까지 설정하고 5시가 오면 강제청산 2)시가가 피봇기준선과 피봇1차저항이나 피봇1차지지사이에서 시작할때도 마찬가지로 피봇기준선에 오면 매수나 매도 피복1차저항이나 피봇1차지지에 오면 매수나 매도가 되겠끔 시스템식이 가능한지요
프로필 이미지
초보트레이더11
2019-03-23
401
글번호 127336
시스템
답변완료

지표작성 도와주세요

안녕하세요 첨부파일1 은 종목별 일간변동성 변화를 추이하기위한 지표입니다. (highd-lowd)/opend 를 5 일평균 첨부파일2 는 거래량/ 미결재약정 을 추가한거구요. (월단위) 지표코딩이나 계산이잘못된건지 . 아니면지표설정문제인지그냥 직선으로출력되네요 첨부파일과같이 일간변동폭 변화를 추이할수잇고 거래량미결재약정 비율 변화도 함께추이할수잇도록 도와주세요 시스템 매매에 꼭 필요한거라 잘 부탁드립니다
프로필 이미지
CSI300
2019-03-23
463
글번호 127334
지표
답변완료

쿠르드 오일 매수 수식

> 쿠르드오일 주식 매매 30분봉 기준 MFI 저점(LPercent(5))이하에서는 신호 발생시마다 분할매수로 1계약씩 최대 100계약까지 매수 매수 청산은 MFI 고점(SPercent)에서 신호발생시 마다 10%씩 청산하는 식을 만들어 주시면 감사하겠습니다. 그리고 수식에서 분할 매수로 하면 설정에서도 뭔가를 건드려야하는건지.. 아니면 수식에서 분할 진입 수식을 적용하면 설정에서 파라미딩 관련 셋팅할게 없는건지 어떤게 우선순위인지 알려주세요~
프로필 이미지
이형지
2019-03-23
435
글번호 127333
시스템
답변완료

10년치 자료

안녕하세요 관리자님 아래지표는 관리자님이 보내주신건데 실거래시 아주 유용하게 사용하고 있습니다. 감사합니다. 근데 아래 지표가 객관성을 가지려면 종목별 10년치 자료로 계산이 되어야 되는데 현재 길어야 10주~52주 정도의 값밖에 표현이 안되고 있습니다. 어떤 방법을 해야 10년치 자료를 활용하여 아래 수식을 잘 활용할수 있는 방법이 있을까요?? 부탁드립니다. - 아 래 - input : P(520);#10년 520주 input : ntime(120);#120분 var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),Tcond(false),HH(0),LL(0),OO(0); Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0); Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0); var : WH1sum(0),WL1sum(0),WH1Sqrt(0),WL1Sqrt(0),Hma1(0),Lma1(0),WH1Stdv(0),WL1Stdv(0); var : WH2sum(0),WL2sum(0),WH2Sqrt(0),WL2Sqrt(0),Hma2(0),Lma2(0),WH2Stdv(0),WL2Stdv(0); var : WH3sum(0),WL3sum(0),WH3Sqrt(0),WL3Sqrt(0),Hma3(0),Lma3(0),WH3Stdv(0),WL3Stdv(0); var : WH4sum(0),WL4sum(0),WH4Sqrt(0),WL4Sqrt(0),Hma4(0),Lma4(0),WH4Stdv(0),WL4Stdv(0); var : WH5sum(0),WL5sum(0),WH5Sqrt(0),WL5Sqrt(0),Hma5(0),Lma5(0),WH5Stdv(0),WL5Stdv(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if (Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])) then { OO = O; HH = H; LL = L; if DayOfWeek(bdate) == 1 Then { for cnt = 1 to 599 { WH1[cnt] = WH1[cnt-1][1]; WL1[cnt] = WL1[cnt-1][1]; } } if DayOfWeek(bdate) == 2 Then { for cnt = 1 to 599 { WH2[cnt] = WH2[cnt-1][1]; WL2[cnt] = WL2[cnt-1][1]; } } if DayOfWeek(bdate) == 3 Then { for cnt = 1 to 599 { WH3[cnt] = WH3[cnt-1][1]; WL3[cnt] = WL3[cnt-1][1]; } } if DayOfWeek(bdate) == 4 Then { for cnt = 1 to 599 { WH4[cnt] = WH4[cnt-1][1]; WL4[cnt] = WL4[cnt-1][1]; } } if DayOfWeek(bdate) == 5 Then { for cnt = 1 to 599 { wh5[cnt] = WH5[cnt-1][1]; WL5[cnt] = WL5[cnt-1][1]; } } } if H > HH Then HH = H; if L < LL Then LL = L; if DayOfWeek(bdate) == 1 Then { WH1[0] = HH-OO; WL1[0] = OO-LL; } if DayOfWeek(bdate) == 2 Then { WH2[0] = HH-OO; WL2[0] = OO-LL; } if DayOfWeek(bdate) == 3 Then { WH3[0] = HH-OO; WL3[0] = OO-LL; } if DayOfWeek(bdate) == 4 Then { WH4[0] = HH-OO; WL4[0] = OO-LL; } if DayOfWeek(bdate) == 5 Then { WH5[0] = HH-OO; WL5[0] = OO-LL; } } if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then { WH1sum = 0; WL1sum = 0; for cnt = 0 to P-1 { WH1sum = WH1sum + WH1[cnt]; WL1sum = WL1sum + WL1[cnt]; } Hma1 = WH1sum/P; Lma1 = WL1sum/P; WH1Sqrt = 0; WL1Sqrt = 0; For cnt = 0 To P - 1 { WH1Sqrt = WH1Sqrt + (WH1[cnt] - Hma1)^2; WL1Sqrt = WL1Sqrt + (WL1[cnt] - Lma1)^2; } WH1Stdv = SquareRoot(WH1Sqrt / P); WL1Stdv = SquareRoot(WL1Sqrt / P); var1 = OO+(Hma1+WH1Stdv*3); var2 = OO-(Lma1+WL1Stdv*3); var3 = OO+(Hma1+WH1Stdv*2); Var4 = OO-(Lma1+WL1Stdv*2); Var5 = OO+(Hma1+WH1Stdv); Var6 = OO-(Lma1+WL1Stdv); plot1(OO+(Hma1+WH1Stdv*3),"3표준편차"); plot2(OO-(Lma1+WL1Stdv*3)); plot3(OO+(Hma1+WH1Stdv*2),"2표준편차"); plot4(OO-(Lma1+WL1Stdv*2)); plot5(OO+(Hma1+WH1Stdv),"표준편차"); plot6(OO-(Lma1+WL1Stdv)); plot7(OO+Hma1,"변동폭"); plot8(OO-Lma1); } if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then { WH2sum = 0; WL2sum = 0; for cnt = 0 to P-1 { WH2sum = WH2sum + WH2[cnt]; WL2sum = WL2sum + WL2[cnt]; } Hma2 = WH2sum/P; Lma2 = WL2sum/P; WH2Sqrt = 0; WL2Sqrt = 0; For cnt = 0 To P - 1 { WH2Sqrt = WH2Sqrt + (WH2[cnt] - Hma2)^2; WL2Sqrt = WL2Sqrt + (WL2[cnt] - Lma2)^2; } WH2Stdv = SquareRoot(WH2Sqrt / P); WL2Stdv = SquareRoot(WL2Sqrt / P); var1 = OO+(Hma2+WH2Stdv*3); var2 = OO-(Lma2+WL2Stdv*3); var3 = OO+(Hma2+WH2Stdv*2); var4 = OO-(Lma2+WL2Stdv*2); var5 = OO+(Hma2+WH2Stdv); var6 = OO-(Lma2+WL2Stdv); plot1(OO+(Hma2+WH2Stdv*3),"3표준편차"); plot2(OO-(Lma2+WL2Stdv*3)); plot3(OO+(Hma2+WH2Stdv*2),"2표준편차"); plot4(OO-(Lma2+WL2Stdv*2)); plot5(OO+(Hma2+WH2Stdv),"표준편차"); plot6(OO-(Lma2+WL2Stdv)); plot7(OO+Hma2,"변동폭"); plot8(OO-Lma2); } if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then { WH3sum = 0; WL3sum = 0; for cnt = 0 to P-1 { WH3sum = WH3sum + WH3[cnt]; WL3sum = WL3sum + WL3[cnt]; } Hma3 = WH3sum/P; Lma3 = WL3sum/P; WH3Sqrt = 0; WL3Sqrt = 0; For cnt = 0 To P - 1 { WH3Sqrt = WH3Sqrt + (WH3[cnt] - Hma3)^2; WL3Sqrt = WL3Sqrt + (WL3[cnt] - Lma3)^2; } WH3Stdv = SquareRoot(WH3Sqrt / P); WL3Stdv = SquareRoot(WL3Sqrt / P); var1 = OO+(Hma3+WH3Stdv*3); var2 = OO-(Lma3+WL3Stdv*3); Var3 = OO+(Hma3+WH3Stdv*2); Var4 = OO-(Lma3+WL3Stdv*2); Var5 = OO+(Hma3+WH3Stdv); Var6 = OO-(Lma3+WL3Stdv); plot1(OO+(Hma3+WH3Stdv*3),"3표준편차"); plot2(OO-(Lma3+WL3Stdv*3)); plot3(OO+(Hma3+WH3Stdv*2),"2표준편차"); plot4(OO-(Lma3+WL3Stdv*2)); plot5(OO+(Hma3+WH3Stdv),"표준편차"); plot6(OO-(Lma3+WL3Stdv)); plot7(OO+Hma3,"변동폭"); plot8(OO-Lma3); } if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then { WH4sum = 0; WL4sum = 0; for cnt = 0 to P-1 { WH4sum = WH4sum + WH4[cnt]; WL4sum = WL4sum + WL4[cnt]; } Hma4 = WH4sum/P; Lma4 = WL4sum/P; WH4Sqrt = 0; WL4Sqrt = 0; For cnt = 0 To P - 1 { WH4Sqrt = WH4Sqrt + (WH4[cnt] - Hma4)^2; WL4Sqrt = WL4Sqrt + (WL4[cnt] - Lma4)^2; } WH4Stdv = SquareRoot(WH4Sqrt / P); WL4Stdv = SquareRoot(WL4Sqrt / P); var1 = OO+(Hma4+WH4Stdv*3); var2 = OO-(Lma4+WL4Stdv*3); Var3 = OO+(Hma4+WH4Stdv*2); Var4 = OO-(Lma4+WL4Stdv*2); Var5 = OO+(Hma4+WH4Stdv); Var6 = OO-(Lma4+WL4Stdv); plot1(OO+(Hma4+WH4Stdv*3),"3표준편차"); plot2(OO-(Lma4+WL4Stdv*3)); plot3(OO+(Hma4+WH4Stdv*2),"2표준편차"); plot4(OO-(Lma4+WL4Stdv*2)); plot5(OO+(Hma4+WH4Stdv),"표준편차"); plot6(OO-(Lma4+WL4Stdv)); plot7(OO+Hma4,"변동폭"); plot8(OO-Lma4); } if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then { WH5sum = 0; WL5sum = 0; for cnt = 0 to P-1 { WH5sum = WH5sum + WH5[cnt]; WL5sum = WL5sum + WL5[cnt]; } Hma5 = WH5sum/P; Lma5 = WL5sum/P; WH5Sqrt = 0; WL5Sqrt = 0; For cnt = 0 To P - 1 { WH5Sqrt = WH5Sqrt + (WH5[cnt] - Hma5)^2; WL5Sqrt = WL5Sqrt + (WL5[cnt] - Lma5)^2; } WH5Stdv = SquareRoot(WH5Sqrt / P); WL5Stdv = SquareRoot(WL5Sqrt / P); var1 = OO+(Hma5+WH5Stdv*3); var2 = OO-(Lma5+WL5Stdv*3); Var3 = OO+(Hma5+WH5Stdv*2); Var4 = OO-(Lma5+WL5Stdv*2); Var5 = OO+(Hma5+WH5Stdv); Var6 = OO-(Lma5+WL5Stdv); plot1(OO+(Hma5+WH5Stdv*3),"3표준편차"); plot2(OO-(Lma5+WL5Stdv*3)); plot3(OO+(Hma5+WH5Stdv*2),"2표준편차"); plot4(OO-(Lma5+WL5Stdv*2)); plot5(OO+(Hma5+WH5Stdv),"표준편차"); plot6(OO-(Lma5+WL5Stdv)); plot7(OO+Hma5,"변동폭"); plot8(OO-Lma5); } if crossup(C,var1) Then PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav"); if CrossDown(C,var2) Then PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav"); if crossup(C,var3) Then PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav"); if CrossDown(C,var4) Then PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav"); if crossup(C,var5) Then PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav"); if CrossDown(C,var6) Then PlaySound("C:₩예스트레이더₩data₩Sound₩stop.wav");
프로필 이미지
카카
2019-03-23
409
글번호 127332
지표
답변완료

지표우측의 수치값을 정수값으로 변환

안녕하세요 관리자님!! 즐거운 주말보내시길 바랍니다. 아래 지표는 변동폭을 표현한 수식인데요 그림 1,2와 같이종목마다 소수점뒷자리수가 모두 틀려 보기가 불편합니다. 따라서 아래 지표중 plot5의 수치를 나타내주는 오늘쪽의 수치를 종목에 상관없이 모두 백단위의(소수점앞3자리) 숫자로 정수화시키고 싶습니다. 부탁드립니다. -아 래- input : P(520);#10년 520주 var : cnt(0); Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0); Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0); var : sum1(0),Sqrt1(0),ma1(0),Stdv1(0); var : sum2(0),Sqrt2(0),ma2(0),stdv2(0); var : sum3(0),Sqrt3(0),ma3(0),Stdv3(0); var : sum4(0),Sqrt4(0),ma4(0),Stdv4(0); var : sum5(0),Sqrt5(0),ma5(0),Stdv5(0); if bdate != bdate[1] then { if DayOfWeek(bdate) == 1 Then { for cnt = 1 to 599 { WH1[cnt] = WH1[cnt-1][1]; WL1[cnt] = WL1[cnt-1][1]; } } if DayOfWeek(bdate) == 2 Then { for cnt = 1 to 599 { WH2[cnt] = WH2[cnt-1][1]; WL2[cnt] = WL2[cnt-1][1]; } } if DayOfWeek(bdate) == 3 Then { for cnt = 1 to 599 { WH3[cnt] = WH3[cnt-1][1]; WL3[cnt] = WL3[cnt-1][1]; } } if DayOfWeek(bdate) == 4 Then { for cnt = 1 to 599 { WH4[cnt] = WH4[cnt-1][1]; WL4[cnt] = WL4[cnt-1][1]; } } if DayOfWeek(bdate) == 5 Then { for cnt = 1 to 599 { WH5[cnt] = WH5[cnt-1][1]; WL5[cnt] = WL5[cnt-1][1]; } } } if DayOfWeek(bdate) == 1 Then { WH1[0] = DayHigh; WL1[0] = DayLow; } if DayOfWeek(bdate) == 2 Then { WH2[0] = DayHigh; WL2[0] = DayLow; } if DayOfWeek(bdate) == 3 Then { WH3[0] = DayHigh; WL3[0] = DayLow; } if DayOfWeek(bdate) == 4 Then { WH4[0] = DayHigh; WL4[0] = DayLow; } if DayOfWeek(bdate) == 5 Then { WH5[0] = DayHigh; WL5[0] = DayLow; } if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then { sum1 = 0; for cnt = 0 to P-1 { sum1 = sum1 + (WH1[cnt]-WL1[cnt]); } ma1 = sum1/P; Sqrt1 = 0; For cnt = 0 To P - 1 { Sqrt1 = Sqrt1 + ((WH1[cnt]-WL1[cnt]) - ma1)^2; } Stdv1 = SquareRoot(Sqrt1/ P); plot1(ma1); plot2(ma1+Stdv1*2); plot3(ma1*0.7); plot4((ma1+Stdv1*2)*0.7); } if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then { sum2 = 0; for cnt = 0 to P-1 { sum2 = sum2 + (WH2[cnt]-WL2[cnt]); } ma2= sum2/P; Sqrt2= 0; For cnt = 0 To P - 1 { Sqrt2 = Sqrt2 + ((WH2[cnt]-WL2[cnt]) - ma2)^2; } Stdv2 = SquareRoot(Sqrt2/ P); plot1(ma2); plot2(ma2+Stdv2*2); plot3(ma2*0.7); plot4((ma2+Stdv2*2)*0.7); } if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then { sum3 = 0; for cnt = 0 to P-1 { sum3 = sum3 + (WH3[cnt]-WL3[cnt]); } ma3= sum3/P; Sqrt3 = 0; For cnt = 0 To P - 1 { Sqrt3 = Sqrt3 + ((WH3[cnt]-WL3[cnt]) - ma3)^2; } Stdv3 = SquareRoot(Sqrt3/ P); plot1(ma3); plot2(ma3+Stdv3*2); plot3(ma3*0.7); plot4((ma3+Stdv3*2)*0.7); } if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then { sum4 = 0; for cnt = 0 to P-1 { sum4 = sum4 + (WH4[cnt]-WL4[cnt]); } ma4= sum4/P; Sqrt4 = 0; For cnt = 0 To P - 1 { Sqrt4 = Sqrt4 + ((WH4[cnt]-WL4[cnt]) - ma4)^2; } Stdv4 = SquareRoot(Sqrt4/ P); plot1(ma4); plot2(ma4+Stdv4*2); plot3(ma4*0.7); plot4((ma4+Stdv4*2)*0.7); } if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then { sum5 = 0; for cnt = 0 to P-1 { sum5 = sum5 + (WH5[cnt]-WL5[cnt]); } ma5= sum5/P; Sqrt5 = 0; For cnt = 0 To P - 1 { Sqrt5 = Sqrt5 + ((WH5[cnt]-WL5[cnt]) - ma5)^2; } Stdv5 = SquareRoot(Sqrt5/ P); plot1(ma5); plot2(ma5+Stdv5*2); plot3(ma5*0.7); plot4((ma5+Stdv5*2)*0.7); } plot5(DayHigh-daylow,"당일변동폭");
프로필 이미지
카카
2019-03-23
448
글번호 127331
지표
답변완료

지표문의요

수식1 a=tema(c,period1); b=tema(c,period2); x=valuewhen(1,crossup(a,b) or crossdown(a,b),b) 수식2 a=tema(c,period1); b=tema(c,period3); x=valuewhen(1,crossup(a,b) or crossdown(a,b),b) 지표조건설정 period1 5 period2 3 period3 2 이것도 변경부탁드립니다 항상감사합니다
프로필 이미지
장군777
2019-03-22
406
글번호 127325
지표