커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~

안녕하세요 꾸준히 공부를 하며 실투자를 진행하고 있는 투자자입니다. 책이나 인터넷 등에서 지표를 보고 해당 지표를 실제 트레이딩에 접목하는 것을 통해 여러 지혜를 배우기도 하고 시스템트레이딩역시 배우고 있는데, 이번 지표는 정말 어렵더라구요. 아무리 많은 디버깅을 해도 이해가 안되는 부분이 있습니다. 그래서 이렇게 질문 드리오니 확인 후 답변 꼭 부탁드립니다! ------------------------------------------------------------------------------ VPCI 기반 지표, 시스템 입니다. 코드는 기존 Q&A를 참고하여 작성하였습니다. 1. 지표 inputs : short(5), Signal(25); var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0); long = short * 5; Sum1 = AccumN(v,short); if Sum1 > 0 then VWMA1 = AccumN(C*v,short)/Sum1 ; Sum2 = AccumN(v,long); if Sum2 > 0 then VWMA2 = AccumN(C*v,long)/Sum2; VPC = VWMA2 - Ma(C,long) ; VPR = VWMA1 / Ma(c, short) ; VM = Ma(v, short) / ma(v, long) ; VPCI = VPC * VPR * VM ; AvgVPCI = Ma( VPCI, Signal ) ; Plot1(VPCI, "VPCI" ) ; Plot2(AvgVPCI, "VPCIsig" ) ; plot3(0, "Zero"); 2. VPCI와 VPCIs 의 크로스를 통한 매매 시스템 inputs : short(5), Signal(20); var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0), VPCIosc(0) ; long = short * 5; Sum1 = AccumN(data3(v),short); if Sum1 > 0 then VWMA1 = AccumN(data3(C)*data3(v),short)/Sum1 ; Sum2 = AccumN(data3(v),long); if Sum2 > 0 then VWMA2 = AccumN(data3(C)*data3(v),long)/Sum2; VPC = VWMA2 - Ma(data3(C),long) ; VPR = VWMA1 / Ma(data3(c), short) ; VM = Ma(data3(v), short) / ma(data3(v), long) ; VPCI = VPC * VPR * VM ; AvgVPCI = Ma( VPCI, Signal ) ; VPCIosc = VPCI-AvgVPCI; if CrossUp(VPCI, AvgVPCI) then { Buy("B",AtMarket); } if MarketPosition == 1 and VPCI < AvgVPCI then { ExitLong("S",AtMarket); } 차트창 에는 DATA1 실거래 1분봉 DATA2 지표참조용 주봉 DATA3 지표참조용 일봉 으로 구성되어 있고 지표를 적용후 설정에서 대상을 DATA3인 일봉을 선택함. 문제는 지표와 시스템상의 이격이 계속 발생이 되고 있다는 겁니다. ※ 참고로 해당 거래는 001 코스피주가지수를 참조하여 테스트를 하였습니다. 지표상에서 아무런 움직임이 없는데 데드크로스 발생후 진행되어야 할 매도가 진행되고 또는 골드크로스 발생 후 진행되어야 할 매수가 뜬금없이 진행되고 합니다. 차트를 DATA1 ~ DATA3 으로 구성되어 있는 점 참고 부탁드리고 답변에 대해 미리 감사드립니다.
프로필 이미지
열심청년
2021-03-16
1103
글번호 147122
시스템
답변완료

청산식 질문드립니다

안녕하세요 정산식 질문좀 드립니다 이평선 20 50 70 90 100 사용합니다 매수진입해서 이평선 20 50 데드시 청산1 진입하고나서 수익이 50틱 이상이고 이평선 20 50 70 90 이 정배열이 아니면 바로청산2 반대 매도의 경우도 부탁합니다 참고로 5계약입니다 틱수만 외부변수로 부탁합니다
프로필 이미지
kjdkdh
2021-03-16
1026
글번호 147120
시스템
답변완료

아래 문의드린 수식이 오류가 있는것 같아 재문의 드립니다.

자꾸 문의를 드리는 것 같아 죄송하네요..ㅜ.ㅜ 어제 문의드렸던 내용 중에 횡보시 청산 관련 타점에 대해 수식을 의뢰 했었는데 실제 시스템에 적용해서 보니. 매수 하자 마자 바로 청산되는 수식으로 바뀌어진것 같습니다. 확인좀 부탁드리겠습니다. 기존 의뢰내용입니다. -------------------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 시간청산이 첫진입 기준으로 되어 있었습니다. 최근진입기준으로 변경했습니다. var : entry(0),AP(0),TT(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and Dayopen(0) >= DayClose(1)*1.005 Then { if entry == 0 or (entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then Buy("b1",AtLimit,DayOpen*0.97); } if Dayopen(0) >= DayClose(1)*1.005 and ( (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or (MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06))) Then Buy("b2",AtLimit,DayOpen*0.94); if Dayopen(0) >= DayClose(1)*1.005 and ((MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true)) Then Buy("b3",AtLimit,DayOpen*0.91); if MarketPosition == 1 Then { AP = AvgEntryPrice; if CurrentContracts > CurrentContracts[1] Then TT = TimeToMinutes(stime); if MaxEntries == 1 and IsEntryName("b1") == true Then { ExitLong("bp1",AtLimit,AP*1.02); if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then ExitLong("bx1"); } if (MaxEntries == 2 and IsEntryName("b1") == true) or (MaxEntries == 1 and IsEntryName("b2") == true) Then { ExitLong("bp2",AtLimit,AP*1.01); if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then ExitLong("bx2"); } if (MaxEntries == 3 and IsEntryName("b1") == true) or (MaxEntries == 2 and IsEntryName("b2") == true) Then { ExitLong("bp3",AtLimit,AP*1.005); if TimeToMinutes(sTime) >= TimeToMinutes(TT)+60 Then ExitLong("bx3"); } ExitLong("bl",AtStop,DayOpen*0.88); } SetStopEndofday(151800); 즐거운 하루되세요 > 맴맴잉 님이 쓴 글입니다. > 제목 : 자꾸 재문의를 드리네요 > 안녕하세요 전에 도식화로 시스템식을 요청드렷던 사람입니다. 시스템 검증 과정에서 저의 생각과 좀 틀린부분이 있어 요청을 드립니다. 매수포지션을 가져가서 횡보할때 매수한지 1시간 이후에 청산하는 부분이 있었습니다. 1타점 매수, 2타점 매수, 3타점 매수 분할매수로 되어있는데. 매수한지 1시간 이후는 1타점 매수에 대해서만. 해당 되는 것 같아 요청드립낟. 예를 들면, 1타점 매수후 2타점이 까지 조건이 만족해서 2타점 까지 매수하여 횡보하던중.. 제 기준은 2타점 매수후 1시간 횡보하면, 청산이였는데.. 시스템식을 돌려보니 1타점 매수후부터로 1시간 횡보하면 청산되는 것으로 나오게 됩니다. 기존에 요청드렸던 시스템식을 같이 송부합니다. 확인 부탁드리겠습니다.
프로필 이미지
맴맴잉
2021-03-15
831
글번호 147119
시스템
답변완료

죄송~~^^ 이 수식에 맞는 신호도 부탁 드립니다.

정말 죄송 합니다. 한 번에 이야기 드렸어야 되었는데, 여기 수식에 대한 신호도 같이 만들어 주셨으면 합니다. 죄송 하고 고맙습니다. input : midPeriod(52); ("이 부분은 잘못 하셔서 제가 수정 했습니다") var1 = ma(c,5); Var2 = ma(c,60); Var3 = ma(c,226); Var4 = (highest(high,midPeriod)+lowest(low,midPeriod))/2; Var5 = BollBandUp(300,2); Condition1 = dayClose(1) < C and var1[1] < var1[4] and var1[1] < var1 and C > Var3 and C > Var2 and Var2 > var2[5] and C > Var4; Condition2 = DayOpen() < dayClose(1)*1.10 and dayClose(1) < C and var1[1] < var1[4] and var1[1] < var1 and C > Var5 and C > var3 and C > Var2 and Var2 > var2[5] and C > Var4; if Condition1 == true and Condition2 == true Then Find(1);
프로필 이미지
그리워
2021-03-16
807
글번호 147118
강조
답변완료

문의

var : Hv(0),CC(0); if crossup(stime,101500) Then{ Hv = V; CC = h; } if stime > 101500 and stime < 144000 Then{ if V > Hv Then{ Hv = V; CC = h; } plot1(CC); } 양봉이면 붉은색선이 나오고 음봉이면 푸른색선이 나오도록 부탁드립니다
프로필 이미지
레전드
2021-03-15
568
글번호 147116
지표
답변완료

부탁드립니다.

if STd(c3,s2)>mm Then {s1=100, 손절=loss1, 익절=profit1} if STd(c3,s2)<mm Then {s1=40, 손절=loss2, 익절=profit2} 이부분에서 변수?가 ?꼬인거같은데 어떻게 풀어야할지 모르겠습니다. 컨셉은 loss1이 숫자로 나오고 이 숫자를 손절에 대입하는것입니다. var : loss1(2),profit1(5),loss2(1),profit2(3); var : 손절(2),익절(5); Var : value(0); var : s1(100),s2(200); var : C2(0,Data2); var : C3(0,Data3); loss1=STd(c,s2)*2; loss2=STd(c,s2); profit1=STd(c,s2)*2; profit2=STd(c,s2); if STd(c3,s2)>mm Then {s1=100, 손절=loss1, 익절=profit1} if STd(c3,s2)<mm Then {s1=40, 손절=loss2, 익절=profit2} . . . . SetStopProfittarget(익절,PointStop); SetStoploss(손절,PointStop);
프로필 이미지
캣피쉬
2021-03-15
514
글번호 147113
시스템

knb 님에 의해서 삭제되었습니다.

프로필 이미지
knb
2021-03-15
163
글번호 147106
지표
답변완료

시스템 수식 관련 문의 드립니다.

매수 손절과 매도 손절을 다른가격으로 설정하고 싶은데 제대로 작성 수식 작성한건지 알고 싶어서 문의 드립니다. 매수 진입 및 청산은 진입조건 만족시 다음봉 기준 진입이구여 매수 손절은 진입 가격 기준 SL_Long틱 이하로 빠질 경우 즉시 청산 매도 손절은 진입 가격 기준 SL_Short틱 이하로 빠질 경우 즉시 청산을 구현하고 싶습니다. 주석처리한 부분을 살려서 쓸 수 있는지 아니면 밑에 if else문으로 작성 하는게 맞는지 아니면 다른 방법이 있는지 꼭 알려주세요. Input : SL_Long(50), SL_Short(70); TickPoint = PriceScale; # 매수 진입 If MarketPosition == 0 and CrossUP(value1, value2) and Condition1 == True and condition3 == True Then Buy("매수"); # 매수 청산 및 손절 if MarketPosition == 1 Then { if CrossUp(value,Exit_Long) Then ExitLong("매수청산"); // if IsEntryName("매수") == True and c <= EntryPrice - PriceScale*SL_Long Then // SetStopLoss(PriceScale * SL_Long,PointStop); } # 매도 진입 if MarketPosition == 0 and CrossDown(value3, value4)and Condition2 == True and condition4 == True Then Sell("매도"); # 매도 청산 및 손절 if MarketPosition == -1 Then { if CrossDown(value,Exit_Short) Then ExitShort("매도청산"); // if IsEntryName("매도") == True and c >= EntryPrice + PriceScale*SL_Short Then // SetStopLoss(PriceScale * SL_Short,PointStop); } # 손절 if MarketPosition == 1 and IsEntryName("매수") == True and c <= EntryPrice - (PriceScale * SL_Long) Then { SetStopLoss(PriceScale * SL_Long,PointStop); } Else if MarketPosition == -1 and IsEntryName("매도") == True and c >= EntryPrice + (PriceScale * SL_Short) Then { SetStopLoss(PriceScale * SL_Short,PointStop); } Else { SetStopLoss(0); }
프로필 이미지
7out
2021-03-15
740
글번호 147104
시스템

캣피쉬 님에 의해서 삭제되었습니다.

프로필 이미지
캣피쉬
2021-03-15
1
글번호 147103
시스템
답변완료

부탁드립니다.

수고 많으십니다. 아래와 같이 호가잔량차(+-권 RGB컬러로 표기)와 피보나치 비율라인을 표기하고자 합니다. 잘 안되네요. 부탁드립니다 감사합니다. 꾸뻑 input : P(20); var : HH(0),LL(0); var1 = ma(Bids-asks,P); PlotBaseLine1(0); plot1(Bids-asks, "잔량차"); plot2(var1, "잔량차이평"); value1 = Bids-asks; if CrossUp(value1,0) Then HH = value1; if value1 > 0 and value1 > HH Then HH = value1; if CrossDown(value1,0) Then LL = value1; if value1 < 0 and value1 < LL Then LL = value1; Plot3(HH,"고점"); plot4(LL,"저점"); Plot5(0(LowD(0)+(HighD(0)- LowD(0))*0.236),"23.6%"); Plot6(0(LowD(0)+(HighD(0)- LowD(0))*0.764),"76.4%"); Plot7(0(LowD(0)+(HighD(0)- LowD(0))*0.382),"38.2%"); Plot8(0(LowD(0)+(HighD(0)- LowD(0))*0.618),"61.8%"); Plot9(0(LowD(0)+(HighD(0)- LowD(0))*0.50),"50.0%");
프로필 이미지
포보스
2021-03-15
730
글번호 147102
지표