커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의 드립니다

input : 익절틱수(300),손절틱수(100); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if sDate != sDate[1] Then { DD = DayOfWeek(Sdate); Year = Floor(Sdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if sDate != sDate[1] Then SetStopEndofday(ET); } if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { if ET < ST Then SetStopEndofday(0); if NextBarOpen != c Then { Buy("b",AtStop,NextBarOpen+PriceScale*10); Sell("s",AtStop,NextBarOpen-PriceScale*10); } } Else { if h < DayOpen+PriceScale*10 Then Buy("b1",AtStop,DayOpen+PriceScale*10); if l > DayOpen-PriceScale*10 Then Sell("s1",AtStop,DayOpen-PriceScale*10); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ------- 위 수식어에서 금일아침 해외선물에서 시가후 당일청산신호가 나옵니다. 수식어에서 어떤 경우인지요 ?
프로필 이미지
푸른
2022-10-17
985
글번호 163012
시스템
답변완료

부탁드립니다

수고하십니다 아래수식은 수식지왕님 블러그에 사용자 함수 입니다 Inputs: Length(NumericSimple),TargetUpLevel(NumericSimple),TargetDnLevel(NumericSimple), NxtYn(NumericSimple), // 다음 봉의 값을 구하려면 1을 아니면 0을 넣어준다. oUpBand(NumericRef), // 주소전달방식임을 선언 oDnBand(NumericRef), // 값을 입력받는게 아니라 여기에 결과값을 채워서 반환한다. oMidLine(NumericRef); // 변수명 앞에 소문자를 o를 붙인 것은 output 변수입을 나타냅니다. Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),MidLevel(0); If CurrentBar == 1 AND Length > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End Else If CurrentBar > 1 AND Length > 0 Then Begin UpAmt = C[0] - C[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then Value1 = 100 * UpAvg / (UpAvg + DownAvg); Else Value1 = 0; If nxtYn == 1 Then // 다음 봉 여부가 1일 경우 { If Value1 > TargetUpLevel Then // 상단밴드 oUpBand = (((TargetUpLevel - 100) / TargetUpLevel * UpAvg) + DownAvg) * (Length - 1) + C; Else oUpBand = ((TargetUpLevel / (100 - TargetUpLevel) * DownAvg) - UpAvg) * (Length - 1) + C; If Value1 > TargetDnLevel Then // 하단밴드 oDnBand = (((TargetDnLevel - 100) / TargetDnLevel * UpAvg) + DownAvg) * (Length - 1) + C; Else oDnBand = ((TargetDnLevel / (100 - TargetDnLevel) * DownAvg) - UpAvg) * (Length - 1) + C; MidLevel = (TargetUpLevel + TargetDnLevel) / 2; // 중간라인 If Value1 > MidLevel Then oMidLine = (((MidLevel - 100) / MidLevel * UpAvg) + DownAvg) * (Length - 1) + C; Else oMidline = ((MidLevel / (100 - MidLevel) * DownAvg) - UpAvg) * (Length - 1) + C; } Else // 다음 봉 여부가 0인 경우 { If Value1[1] > TargetUpLevel Then oUpBand = (((TargetUpLevel - 100) / TargetUpLevel * UpAvg[1]) + DownAvg[1]) * (Length - 1) + C[1]; Else oUpBand = ((TargetUpLevel / (100 - TargetUpLevel) * DownAvg[1]) - UpAvg[1]) * (Length - 1) + C[1]; If Value1[1] > TargetDnLevel Then oDnBand = (((TargetDnLevel - 100) / TargetDnLevel * UpAvg[1]) + DownAvg[1]) * (Length - 1) + C[1]; Else oDnBand = ((TargetDnLevel / (100 - TargetDnLevel) * DownAvg[1]) - UpAvg[1]) * (Length - 1) + C[1]; MidLevel = (TargetUpLevel + TargetDnLevel) / 2; If Value1[1] > MidLevel Then oMidLine = (((MidLevel - 100) / MidLevel * UpAvg[1]) + DownAvg[1]) * (Length - 1) + C[1]; Else oMidline = ((MidLevel / (100 - MidLevel) * DownAvg[1]) - UpAvg[1]) * (Length - 1) + C[1]; } __RSI_BAND = 1; //사용자함수는 반환값이 있어야 한다고 했습니다. // oUpBand, oDnBand, oMidLine 는 메모리 주소이지 반환값이 아닙니다. // 그래서 마지막에 아무 값이나 넘겨 줘야 하기 때문에 그냥 1을 넣어 줬습니다. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //사용자함수 이용함(RSI_BAND), Input:Length(14),UpLevel(70),DnLevel(30); Var:Upband(0),DnBand(0),MidLine(0); __RSI_BAND(Length,UpLevel,DnLevel,0,UpBand,DnBand,MidLine); // 현재 봉에서의 밴드 값 Plot1(UpBand); Plot2(MidLine); Plot3(DnBand); Plot4( ? );//60선라인 Plot5( ? ); //40선라인 //1.Plot2(MidLine);중간라인(50선) 사용자함수를수정해서 ( 70선) 과 (중간라인50선) 사이에 [ 60선라인]과 (중간라인50선)과 (30선)사이의 [40선라인] 이 나타나는 수식부탁드립니다
프로필 이미지
파생돌이
2022-10-17
1184
글번호 163011
지표
답변완료

문의

당일을 기준으로 나타나게 부탁드리며 0.5 라인은 색깔이 다르게 할수 있도록 부탁드립니다 Input:length(10),기준일(20110101),파동선두께(2); Var:j(0),jj(0),jjj(0),최종고가(0),최종저가(0),최종변곡점(""),처리구분(""), TL1(0); Array:고[5,4](0),저[5,4](0), // 1:가격, 2:Index, 3:sDate, 4:sTime 역사적고점[5](0),역사적저점[5](0); #==========================================# If Index == 0 Then { 고[1,1] = H; 저[1,1] = L; } Condition1 = Highest(H,length) == H and 최종고가 <> H; Condition2 = Lowest (L,length) == L and 최종저가 <> L; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = H; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { For j = 5 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,RED); } Else If 고[1,1] < H Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = H; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); } If 기준일 <= Date and (역사적고점[1] < 고[1,1] or 역사적고점[1] == 0) Then { For jjj = 1 To 4 { 역사적고점[jjj] = 고[1,jjj]; 역사적저점[jjj] = 0; } } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = L; If 최종변곡점 == "고점" then { For j = 5 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = L; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLUE); } Else If 저[1,1] > L then { 저[1,1] = L; 저[1,3] = sDate; 저[1,4] = sTime; 저[1,2] = Index; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); } If 기준일 <= Date and ( 역사적저점[1] > 저[1,1] or 역사적저점[1] == 0 ) Then { For jjj = 1 To 4 { 역사적저점[jjj] = 저[1,jjj]; //역사적고점[jjj] = 0; // 역사적 고점 초기화 } } 최종변곡점 = "저점"; } #==========================================# Var:기울기(0); Array:fr[7,4](0); // 1:비율, 2:값, 3:라인번호, 4:텍스트번호 If Index == 0 Then { fr[1,1] = 0; fr[2,1] = 0.236; fr[3,1] = 0.382; fr[4,1] = 0.50; fr[5,1] = 0.618; fr[6,1] = 0.764; fr[7,1] = 1; } If 역사적고점[1] > 0 and 역사적저점[1] > 0 Then { If 역사적고점[1][1] != 역사적고점[1] or 역사적저점[1][1] != 역사적저점[1] Then { 기울기 = (역사적고점[1] - 역사적저점[1]) / (역사적고점[2] - 역사적저점[2]); for j = 1 to 7 { If fr[j,3] > 0 Then TL_Delete(fr[j,3]); // 기존의 라인은 지우고 fr[j,2] = 기울기 * fr[j,1] * (index - 역사적고점[2]) + 역사적고점[1]; // 피보나치 비율을 곱해서 계산 fr[j,3] = TL_New(역사적고점[3],역사적고점[4],역사적고점[1],sDate,sTime,fr[j,2]); // 라인을 생성 } } Else { for j = 1 to 7 { fr[j,2] = 기울기 * fr[j,1] * (index - 역사적고점[2]) + 역사적고점[1]; TL_SetEnd(fr[j,3],sDate,sTime,fr[j,2]); } } }
프로필 이미지
레전드
2022-10-16
848
글번호 163010
지표
답변완료

전일/금일 동일시간대 비교

안녕하세요 선물5분봉 차트에 당일 현재봉(예,10시)까지의 누적거래량(V)과 전일 개장후 동일시간까지의 누적거래량을 각각 두개의 선그래프로 표시되도록 하려면 어떻게 수식을 작성해야 하는지요 ? 즉, 동일시간기준으로 전일대비 누적거래량을 비교하고자 합니다 수고하세요
프로필 이미지
thrupass
2022-10-16
843
글번호 163009
지표
답변완료

감사합니다

### 일봉 일목 지표를 주봉에 적용 하고져합니다 변수 45 130 260 으로 부탁드리니다 Inputs: TurnLen(9), StdLen(26), PrdLen(52); Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2; 기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2; Plot1(전환선, "전환선"); Plot2(기준선, "기준선"); Plot3(후행스팬, "후행스팬"); Plot4(선행스팬1,"선행스팬1"); Plot5(선행스팬2, "선행스팬2"); ##### 주봉변수를 이용해서 일봉에 써볼려고 합니다 변수 수정해 봤는데 안되는거 같네요
프로필 이미지
매치다는
2022-10-16
1027
글번호 163008
지표
답변완료

참조 데이터 변수 선언 시 시스템 성능이 바뀝니다.

원래 1개 차트 5분봉으로만 전략 만들어서 사용하다가 30분 차트도 같이 활용하려고 참조 데이터로 추가 한 뒤 변수를 선언하니까 성능 보고서가 달라지는데 원래 이런건지 궁금합니다. 코딩: var : ma5(0), ma10(0), ma20(0); //새로 추가한 코드 var : simri(0, Data2); ma5 = Ma(Close, 5); ma10 = Ma(Close, 10); ma20 = Ma(Close, 20); //새로 추가한 코드 simri = Data2(Simrido(15)); 이렇게 선언만 하고 매수/매도 조건에 추가하기 전에 성능이 바뀌고 조건에 추가하면 한번더 바뀝니다.
프로필 이미지
시트
2022-10-16
1031
글번호 163007
시스템
답변완료

수식 부탁드립니다.

100봉 중심선 구현 부탁드립니다.(틱/분봉/일봉/주봉/월봉 관계없이 어디서나)
프로필 이미지
조지1
2022-10-16
1252
글번호 163006
시스템
답변완료

부탁드립니다

부탁드립니다
프로필 이미지
매치다2
2022-10-16
1366
글번호 163005
종목검색

질갱이 님에 의해서 삭제되었습니다.

프로필 이미지
질갱이
2022-10-17
532
글번호 163004
시스템
답변완료

지표 질문입니다

1. 최근 9캔들 양봉 종가 가운데 가장 높은 가격과 두번째 높은 가격 표시 최근 9캔들 음봉 종가 가운데 가장 낮은 가격과 두번째 낮은 가격 표시 2. 최근 9캔들 양봉 저가 가운데 가장 낮은 가격과 그 양봉 캔들의 고가를 표시 최근 9캔들 음봉 고가 가운데 가장 높은 가격과 그 음봉 캔들의 저가를 표시 감사합니다
프로필 이미지
para
2022-10-16
1220
글번호 163003
지표