커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

지표 수식변환부탁드립니다

Re : 지표 수식변환부탁드립니다 아래지표 코멘트드립니다 예스트레이더 수식으로 전환 부탁드립니다 Avgif(C-A,-1,0.0) // (종가 - 224일지수이평) 값이 0보다 작은값들에 대해서만 평균을구한다 Stdevif(C-A,-1,0.0) // (종가 - 224일지수이평) 값이 0보다 작은값들에 대해서만 표준편차 구한다 기간은 moving 224일동안의 해당되는 평균,표준편차를 구하는것으로 하면 되겠읍니다 > seayun1 님이 쓴 글입니다. > 제목 : 지표 수식변환부탁드립니다 > 영웅문 수식 변환 부탁드립니다 A=MA(C,가격1,지수); A+Avgif(C-A,-1,0.0)-2*Stdevif(C-A,-1,0.0)
프로필 이미지
seayun1
2023-03-14
1358
글번호 167164
지표
답변완료

수식 문의드립니다

input : Periods(10),Multiplier(3.0),changeATR(true),showsignals(true),highlighting(true); input : short(12),long(26); var : src(0),ATr2(0),ATrv(0),upv(0),up1(0),dnv(0),dn1(0); var : trend(0),macdv(0); src = (h+l)/2; atr2 = ma(TrueRange, Periods); atrv = iff(changeATR , atr(Periods) , atr2); upv = src-(Multiplier*atrv); up1 = iff(IsNaN(upv[1]) == False,upv[1],upv); upv = iff(close[1] > up1 , max(upv,up1) , upv); dnv =src+(Multiplier*atrv); dn1 = iff(isnan(dnv[1]) == False,dnv[1], dnv); dnv = iff(close[1] < dn1 , min(dnv, dn1) , dnv); trend = 1; trend = iff(IsNaN(trend[1]) == False,trend[1], trend); trend = iff(trend == -1 and close > dn1 , 1 , IFf( trend == 1 and close < up1 , -1 , trend)); macdv = macd(short,long); if trend == 1 and trend[1] == -1 and macdv > 0 Then { Buy(); } if trend == -1 and trend[1] == 1 and macdv < 0 Then { exitlong(); } 논라값(참/거짓)이나 논리표현식이 와야 한다고 나옵니다ㅜㅜ 어디가 잘못된것일까요?
프로필 이미지
탱탱볼
2023-03-14
751
글번호 167163
시스템
답변완료

표시 삭제

input : Period(120); Var:j(0),T(0),count(0),l1(0),l2(0),l3(0); Var: date11(0),date12(0),time11(0),time12(0), date21(0),date22(0),time21(0),time22(0),txx(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Plot1(value12); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; Condition1 = False; Condition11 = False; count = 0; } Else { If LoVal[0] >= L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date22 = date[0]; time22 = stime[0]; if Condition11 == true and value12 < l2-PriceScale*5 Then Text_Delete(txx); Condition1 = False; } Else { if Condition1 == False and Value12 <= value11-0.5 and H >= value12+PriceScale*3 Then { Condition1 = true; count = count+1; l1 = value12; l2 = l1[1]; l3 = l2[1]; if count >= 2 and l1 >= l2-PriceScale*5 Then { Condition11 = true; txx = Text_New(sdate,sTime,H+PriceScale*5,"●"); Text_SetStyle(txx,2,2); Text_SetColor(txx,Red); Text_SetSize(txx,25); } } if Condition11 == true and value12 < l2-PriceScale*5 Then { Condition11 = False; Text_Delete(txx); } } } } If T == 1 Then { If T[1] != 1 Then { Text_Delete(txx); For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date32 = date[0]; time32 = stime[0]; } } 양전환되거나 첫 반등 저점에서 -6틱 도달시, 동그라미 삭제 부분에서, 동그라미가 하나일 때는 잘 되는데, 반등 많은 횡보 구간에서 동그라미가 여러개 생길 경우 마지막 동그라미만 삭제가 되고 이전 것은 저장이 됩니다. 전부 삭제하고 싶습니다. 1방안:다음 동그라미 생기면 동시에 앞 동그라미 삭제.(항상 하나만 존재) (1방안 우선) 2방안:삭제 조건이 되면 일괄 삭제. 등 등. 수정 부탁드립니다.
프로필 이미지
고성
2023-03-14
893
글번호 167162
지표

고박사122 님에 의해서 삭제되었습니다.

프로필 이미지
고박사122
2023-03-14
10
글번호 167161
시스템
답변완료

시스템식 부탁드립니다.

항상 도움 주셔서 감사합니다. 1. 아래 두 함수를 특정 조건이 만족했을 경우만 사용하고 싶습니다. 제가 알기로는 아래 함수는 조건문을 사용해서 제어가 안되는 것으로 알고 있는데 맞게 알고 있는지 모르겠습니다. 가령 예를 들면 if 함수를 써서 조건이 만족했을때문 작용하도록 하고 싶습니다. if marketposition == 0 and crossup(C,dayopen) then buy("b) ; if marketposition == 1 and maxentry >= 5 then SetStopLoss(PriceScale*100,PointStop); SetStopProfittarget(PriceScale*100,PointStop); else exitlong("bx",avgentryprice+PriceScale*100,1) ; exitshort("sx",avgentryprice-PriceScale*100,1) ; 위와 같이 코딩해봤는데 잘 안됩니다. 제가 놓치고 있는게 있나요? 도움 부탁드립니다. 2. 매수 진입 후 가격이 하락하여 피라미딩으로 추가 계약 진입시 마지막 진입과 이전 진입과의 합이 10틱이상 수익시 2계약만 청산하고 싶습니다. 가령 매수 진입 이후 가격이 계속 하락하여 1계약씩 추가로 진입하여 총 10번 진입해서 총 계약수가 10계약이 있을 경우 가격이 다시 상승하는 경우 마지막 진입포지션 손익과 이전 진입포지션 수익의 합이 플러스 10틱인 경우 10번째랑 9번째 포지션만 청산하고 싶습니다. 그리고 가격이 계속 상승하는 경우 8번째랑 7번번째 포지션 수익의 합이 다시 10틱이 되었을 경우 8번째랑 7번째 포지션만 청산하고 싶습니다. 그러다가 가격이 다시 하락하면 또 10틱 단위로 추가 매수하다가 가격이 재차 상승하는 경우 마지막 진입과 그 이전 진입의 포지션 수익의 합이 10틱이 되면 최근 진입한 2계약만 청산하고 싶습니다. 위 조건에 맞는 시스템식 부탁드립니다. 감사합니다.
프로필 이미지
양치기
2023-03-14
1110
글번호 167150
시스템
답변완료

잔고함수 예수금

안녕하세요. GetUnclearedDeposits(AccoundNum) 함수는 주식계좌의 (대용+현금)에서 현금값만 알려주나요? 선물계좌에서는 (대용+현금)한 값을 알려주는거 같은데.. 확인부탁드립니다~
프로필 이미지
건곤대
2023-03-14
797
글번호 167148
시스템
답변완료

문의

문의 드립니다. 게시판에서 찾은 추세선 지표인데 아래 지표식에서 텍스트(숫자)가 안 나오게 부탁드립니다. 감사합니다. input : Left(5),right(5),색1(red),색2(blue),굵기(1); var : SHcnt(0),SLcnt(0); var : SHV(0),SHD(0),SHT(0),HTL(0),HTX(0); var : SHV1(0),SHD1(0),SHT1(0); var : SLV(0),SLD(0),SLT(0),LTL(0),LTX(0); var : SLV1(0),SLD1(0),SLT1(0); if Bdate != bdate[1] Then { SHcnt = 0; SLcnt = 0; TL_Delete(HTL); TL_Delete(LTL); Text_Delete(HTX); Text_Delete(LTX); } if SwingHigh(1,h,left,right,left+right+1) != -1 Then { TL_Delete(HTL); Text_Delete(HTX); SHcnt = SHcnt+1; SHV = H[right]; SHD = sDate[right]; SHT = sTime[right]; SHV1 = SHV[1]; SHD1 = SHD[1]; SHT1 = SHT[1]; if SHcnt >= 2 Then { HTL = TL_new(SHD1,SHT1,SHV1,SHD,SHT,SHV); TL_SetColor(HTL,색1); TL_SetExtRight(HTL,true); TL_SetSize(HTL,굵기); HTX = Text_New(NextBarSdate,NextBarStime,SHV,NumToStr(SHV,2)); Text_SetStyle(HTX,0,1); } } Else { Text_SetString(HTX,NumToStr(TL_GetValue(HTL,sDate,sTime),2)); Text_SetLocation(HTX,NextBarSdate,NextBarStime,TL_GetValue(HTL,sDate,sTime)); } if SwingLow(1,L,left,right,left+right+1) != -1 Then { TL_Delete(LTL); Text_Delete(LTX); SLcnt = SLcnt+1; SLV = L[right]; SLD = sDate[right]; SLT = sTime[right]; SLV1 = SLV[1]; SLD1 = SLD[1]; SLT1 = SLT[1]; if SLcnt >= 2 Then { LTL = TL_new(SLD1,SLT1,SLV1,SLD,SLT,SLV); TL_SetColor(LTL,색2); TL_SetExtRight(LTL,true); TL_SetSize(LTL,굵기); LTX = Text_New(NextBarSdate,NextBarStime,SLV,NumToStr(SLV,2)); Text_SetStyle(LTX,0,0); } } Else { Text_SetString(LTX,NumToStr(TL_GetValue(LTL,sDate,sTime),2)); Text_SetLocation(LTX,NextBarSdate,NextBarStime,TL_GetValue(LTL,sDate,sTime)); }
프로필 이미지
육각수
2023-03-14
797
글번호 167146
지표
답변완료

수식 문의 드립니다.

매수: 20 이평선 통과 함과 동시에 매수 메도: 10 이평선 하향함과 동시에 매도
프로필 이미지
기관장
2023-03-14
1179
글번호 167143
시스템
답변완료

분봉에서 일봉데이터 불러오기 관련 문의 드립니다.

안녕하세요? data1 : 분봉 data2 : 일봉 이렇게 쓰고 있는데,, 매번 data2 종목을 바꿔주는게 불편해서 분봉에서 data2 띄우지 않고 전일의 시/고/저/종가 이평을 불러와서 동일하게 쓰려고 합니다. value1 = ma(closed(1),5); value2 = data2(ma(closed(0),5)) ; Plot1(value1); plot2(Value2); 이렇게 작성하면 value1은 분봉마다 가격이 달라지고 value2는 분봉이 변해도 당일중에는 당일중에는 변동이 없는데 data2를 쓰지않고 value2와 같이 당일은 동일한 값을 표현하는 방법이 있는지요?
프로필 이미지
오토원
2023-03-14
1036
글번호 167142
지표
답변완료

부탁드립니다

### 매도청산신호 추가부탁드립니다 ### input : length(12),reverse(false); input : Period1(5),Period2(10),d1(2),period(40); Input : P(3),P1(4),P2(5),P3(6),P4(7), LPercent(30), SPercent(65); var : hh(0),ll(0),ps(0),pssig(0); var : RSIv(0),rsis(0),stdv(0),t1(0),t2(0),b(0),s(0); var : Relative(0),Relative1(0),Relative2(0),Relative3(0),Relative4(0); Var : value(0); var : s1(0),s2(0),s3(0),s4(0); hh = highest(high, length); ll = lowest(low, length); if C > hh[1] Then ps = 1; if C < ll[1] Then ps = -1; pssig = iff(reverse and ps == 1, -1, iff(reverse and ps == -1, 1, ps)); if s1 <= 0 and pssig == 1 then { s1= 1; buy("b1"); } if s1 <= 0 and pssig == -1 then { s1 = -1; } RSIv = RSI(Period1); RSIs = ema(RSIv,period2); stdv = std(rsiv,period2); t1 = ema(ema(ema(C,5),5),5); t2 = ema(ema(ema(C,10),10),10); var1 = lrl(c,period)+lrs(c,period); b = 0; if RSIV > rsis+d1*stdv Then b = b+1; if t1 > t2 Then b = b+1; if var1 > var1[1] Then b = b+1; s = 0; if RSIV < rsis-d1*stdv Then s = s+1; if t1 < t2 Then s = s+ 1; if var1 < var1[1] Then s = s+ 1; if s2 <= 0 and b >= 2 Then { s2 = 1; buy("b2"); } if s2 >= 0 and s >= 2 Then s2 = -1; Relative = RSI(P); Relative1 = RSI(P1); Relative2 = RSI(P2); Relative3 = RSI(P3); Relative4 = RSI(P4); value = RSI(P); # 매수/매도청산 If s3 <= 0 and Relative > 65 && Relative1 > 65 && Relative2 > 65 && Relative3 > 65 && Relative4[1] < 65 && CrossUP(Relative4, sPercent) Then { s3 = 1; Buy("b3"); } # 매도/매수청산 If s3 >= 0 and CrossDown(Relative1, lPercent) Then { s3 = -1; } input : dayLen(18); var : ii(0),v1(0),v2(0),v3(0),v4(0),v5(0); v1 = (close - close[DayLen - 1]) / (DayLen - 1); v2 = 0; For ii = 2 To DayLen - 1 begin v2 = v2 + abs(close[DayLen - ii] - Close[DayLen - 1] - (ii - 1) * v1); end; If v2 <> 0 Then { If DayLen / 2 == 0 Then v3 = accumN(close, DayLen) - DayLen * close[DayLen - 1] - (DayLen * (DayLen - 2) / 2 + DayLen / 2) * v1; Else v3 = accumN(close, DayLen) - DayLen * close[DayLen - 1] - DayLen * (DayLen - 1) / 2 * v1; If v3 > 0 Then v4 = (v2 - v3) / 2 + v3; Else v4 = (v2 + v3) / 2; v5 = v4 / v2 * 100; If s4 <= 0 and v1 > 0 And v5 < 20 Then { s4 = 1; buy("b4", Atmarket); } If V1 < 0 And V5 > 80 Then { s4 = -1; } }
프로필 이미지
매치다2
2023-03-14
758
글번호 167141
시스템