커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

추세선 쓰리바닥

input : Period(12),선두께(1); Var:상승색(Red), 하락색(Blue); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/; Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); r[0] = 0; r[1] = 2; r[2] = 3.; r[3] = -1; r[4] = -2.; r[5] = 1; r[6] = 0.5; 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]; //ZZ[j+1] = ZZ[j]; } LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,하락색); Tx = Text_New(date11,time11,Value11,"●"); #동그라미 색상, 빨강 Text_SetColor(Tx,Blue); Text_SetStyle(Tx,2,2); Text_SetSize(tx,7); //tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+NumToStr(value11,2)+NewLine); //Text_SetStyle(tx,2,1); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } #TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]); #TL_SetColor(TL2[1],RED); #TL_SetStyle(TL2[1], 3); #TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]); #TL_SetColor(TL2[2],RED); #TL_SetSize(TL2[2],1); #TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2)); #Text_SetColor(Tx2[2],BWHITE); #Text_SetStyle(TX2[2],1,1); #TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]); #TL_SetColor(TL2[3],RED); #TL_SetStyle(TL2[3], 3); #TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]); #TL_SetColor(TL2[4],RED); #TL_SetSize(TL2[4],1); #TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2)); #Text_SetColor(Tx2[4],BWHITE); #Text_SetStyle(TX2[4],1,0); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_SetEnd(TL2[0],date22,time22,fr[0]); TL_SetEnd(TL2[1],date22,time22,fr[1]); TL_SetEnd(TL2[2],date22,time22,fr[2]); Text_SetLocation(TX2[2],date22,time22,fr[2]); TL_SetEnd(TL2[3],date22,time22,fr[3]); TL_SetEnd(TL2[4],date22,time22,fr[4]); Text_SetLocation(TX2[4],date22,time22,fr[4]); TL_SetEnd(TL2[5],date22,time22,fr[5]); TL_SetEnd(TL2[6],date22,time22,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; //ZZ[j+1] = ZZ[j]; } HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,상승색); Tx1 = Text_New(date11,time11,Value11,"●"); #동그라미 색상, 파랑 Text_SetColor(Tx1,Red); Text_SetStyle(Tx1,2,2); Text_SetSize(tx1,7); //tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)+NewLine+NumToStr(value11,2)); //Text_SetStyle(tx,2,0); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_SetEnd(TL3[0],date32,time32,fr[0]); TL_SetEnd(TL3[1],date32,time32,fr[1]); TL_SetEnd(TL3[2],date32,time32,fr[2]); Text_SetLocation(TX3[2],date32,time32,fr[2]); TL_SetEnd(TL3[3],date32,time32,fr[3]); TL_SetEnd(TL3[4],date32,time32,fr[4]); Text_SetLocation(TX3[4],date32,time32,fr[4]); TL_SetEnd(TL3[5],date32,time32,fr[5]); TL_SetEnd(TL3[6],date32,time32,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } TL_SetSize(TL1,선두께); //TL_SetEnd(tl,NextBarSdate,NextBarStime,NextBarOpen); 0.35p 내에서 쓰리바닥을 형성하는지를 실시간으로 보기위한 지표입니다. 1.추세선이 음전환될 때, 직전저점과 전전저점의 차이가 상하 관계없이 0.35p 이내이면 상단에 동그라미 표시. 2.동그라미 삭제 시점:직전저점과 전전저점 중에 "높은 저점"을 기준으로하여 가.아래로 -0.35p 도달 전에 양전환시. 나.계속 하락하여 -0.35p를 하향 붕괴할 때. (동그라미는 생성과 삭제를 반복합니다.) 감사합니다.
프로필 이미지
고성
2022-11-03
889
글번호 163495
지표
답변완료

타주기 참조 시스템의 연산 속도를 높이려면 ?

안녕하세요. 1. 예스트레이더에서 기본 10틱 차트에 Data2 에는 4분봉을 설정하고, 4분봉이 완성되면 지표 를 계산하여 틱차트에서 매매를 하는 시스템입니다. 지표가 연산을 많이 해야 해서 4분봉이 완성되었을 때 한번만 연산을 하게 만들고 싶습니다. 아래 시스템을 시뮬레이션 해보면 4분에 한 번씩 제대로 실행하고 있지만, 전략실행차트에서 실행을 하면 bn4 는 맞게 나오는 반면, MessageLog 가 틱봉마다 계속 프린트 되고 있습니다. MessageLog만 나오고 실제 연산은 제가 원하는 대로 4분에 한번만 하고 있는 걸까요? 만약 연산이 계속 되고 있다면 연산을 한번만 할 수 있도록 수식을 수정해 주시면 감사하겠습니다. 만약 연산이 4분에 한번만 이루어지고 있다면 틱 처리 속도를 높이기 위해 컴퓨터나 예스트레이더의 설정을 바꿔 줘야 하는 부분이 있다면 알려 주시면 감사하겠습니다. vars: T4(0), bn4(0); T4 = Data2(sTime); if (T4 != T4[1]) Then { MessageLog("%.0f %.0f T4 %.0f %.0f bn4 %.0f C4 %.2f", Date, Time, T4[1], T4, bn4, Data2(C[1])); bn4 = bn4 + 1; // 4분봉 barIndex //여기에 연산식이 있습니다 } 2. 하이투자증권예스트레이더에 64비트용이 있던데 여기서 해외선물(E-mini S&P 500, E-mini Nasdaq 100 등) 거래가 가능한가요? 감사합니다.
프로필 이미지
gemini
2022-11-03
940
글번호 163494
시스템
답변완료

제 수식작성 구성 방식이 잘못되었나요

수식 코드 중에 아래의 수식이 들어가면 검색이 되고 이 수식을 빼면 검색이 되지 않습니다. 혹시 제가 작성하는 수식 방식에 문제가 있나요??? if ( V > nMav * 0.08 ) Then { Find(0); } 3분봉 기준으로 당일 고가를 돌파하는 종목을 검색하는 수식입니다. 당일 분봉에서만 검색하고 싶고요. 제가 작성하는 방식이 잘못된건가요?? /////////////////////////////////////////////////////////////////// //// 종목검색 수식.... input : TargetDate(20221103); var : nCnt(0), nSum(0), nMav(0), nMav1(0), nMav2(0), nMav3(0); var : dwCloseRate(0), dwLowRate(0), dwLowCloseRate(0), dwAdjustedRate(0), dwRate(0); var : bIsCond1(False), bIsCond2(False), bIsCond3(False), bIsCond4(False), bIsCond5(False); var : nCondTime1(0), nCondTime2(0); ////////////////////////////////////////////////////////////////////////////////// ////// 전역변수 설정. ////// ////// var1 ==> 당일 캔들 인덱스.... ////// var2 ==> 과거 (10/20/40일) 최소 일평균거래량 ////// var3 ==> 당일 종가 상 고가 캔들 Index ////// var4 ==> ////// Var5 ==> ////// var6 ==> ////// var7 ==> ////// var8 ==> 5EMA의 20EMA 이탈 캔들 Index ////// var9 ==> 5EMA의 60EMA 이탈 캔들 Index ////// var10 ==> 과거 일평균거래량 대비 당일 거래량 비율 ////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// ///// DataCompress = (0:틱, 1:초, 2:분, 3:일, 4:주, 5:월......) if ( date != date[1] && date == TargetDate) Then { nSum = 0; For nCnt = 1 to 40 { nSum = nSum + DayVolume(nCnt); if nCnt == 10 Then nMav1 = INT(nSum / 10); Else if nCnt == 20 Then nMav2 = INT(nSum / 20); Else if nCnt == 40 Then nMav3 = INT(nSum / 40); } ////////////////////////////////////////////////////////////////////////// //// 3분봉 기준으로으로 캔들 평균거래량 nMav = Min(nMav1, nMav2, nMav3); var3 = 1; var4 = H; Var5 = 0; Var6 = 0; bIsCond1 = False; bIsCond2 = False; bIsCond3 = False; bIsCond4 = False; bIsCond5 = False; } else if ( date == TargetDate && nMav > 80000 ) Then { dwRate = (C - C[1])/C[1]*100; dwCloseRate = (C - DayClose(1))/DayClose(1)*100; dwLowRate = (DayLow(0) - DayClose(1))/DayClose(1)*100; dwLowCloseRate = (DayClose(0) - DayLow(0))/DayLow(0)*100; //////////////////////////////////////////////////// ///// 이 코드가 들어가면 검색이 되고 이 코드를 빼면 검색이 되지 않아요. ///// 전혀 의미없는 코드 같은데....... if ( V > nMav * 0.08 ) Then { Find(0); } ////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// ////// 장시작 후 하락하다가 고점 돌파 후 상승전환 한 경우..... if ( C > H[Var3] && sTime >= 090900 && sTime <= 113000 && bIsCond1 == False ) Then { if ( dwCloseRate > 0 && dwLowRate < 0 && dwLowCloseRate > 1.5 ) Then { nCondTime1 = sTime; bIsCond1 = True; } } //////////////////////////////////////////////////////////////////////////////////////////// ////// 장시작 직후(10시이전) 거래량을 수반하면서 캔들 등락률이 1% 이상..... if ( C > H[Var3] && sTime >= 090900 && sTime <= 100100 && bIsCond2 == False ) Then { if ( dwRate > 0.8 && dwCloseRate > 0 && (V > DayVolume(1)*0.1 || V > nMav/125*5) ) Then { nCondTime2 = sTime; bIsCond2 = True; } } if ( bIsCond1 == TRUE ) Then Find(nCondTime1); if ( bIsCond2 == TRUE ) Then Find(nCondTime2); if ( H >= H[Var3] ) Then { Var3 = 1; } Else { Var3 = var3+1; } }
프로필 이미지
태공
2022-11-04
859
글번호 163493
종목검색
답변완료

MACD + 스토캐스틱 수식 질문입니다.

질문 드립니다! 하고싶은 액션은, · 스토캐스틱 %D가 과매수 구간 퇴장 후, B)%K가 %D를 하향돌파 & C)MACD가 시그널 선을 하향돌파 시 매도 · 스토캐스틱 %D가 과매도 구간 퇴장 후, B)%K가 %D를 상향돌파 & C)MACD가 시그널 선을 상향돌파 시 매수 여기서 주의점은 1) A)와C)는 누가 먼저 나오든 신호가 켜진 상태 2) 단 B)는 A)신호가 나온 후의 것만 신호접수 (ex.과매수 구간에서 이미 나온 %K %D교차는 무시) -> 2)의 코딩을 잘 못하겠어서 도움을 요청드립니다. 아래는 사용한 코딩식입니다. Var1 = StochasticsK(12,5); Var2 = StochasticsD(12,5,5); Var3 = MACD(12,26); Var4 = Ema(Var3,9); # %D 과열구간 내 추세전환(변곡점) 후, %K %D교차 if CrossDown(Var2, 80) then if CrossDown(Var1,Var2) Then Condition1 = True; if CrossDown(Var2,20) Then Condition1 = False; if CrossUp(Var2, 20) then if CrossUp(Var1,Var2) Then Condition2 = True; if Crossup(Var2,80) Then Condition2 = False; # 매수 if Condition1 == True && CrossDown(Var3,Var4) Then Sell(); # 매도 if Condition2 == True && CrossUp(Var3,Var4) Then Buy();
프로필 이미지
tsys7
2022-11-02
1137
글번호 163492
시스템
답변완료

수식 문의 드립니다

Inputs: VtyPercent(0.75),ATRperiod(5); If MarketPosition() <> 1 Then Buy ("Vty_LE", AtStop, Close + (VtyPercent * ATR(ATRperiod))); If MarketPosition() <> -1 Then Sell ("Vty_SE)", AtStop, Close - (VtyPercent * ATR(ATRperiod))); 위 수식어에 해외선물 매매시간을 19:00 ~ 익일 05:30 와 손절100틱 추가의 수식어를 부탁드립니다. ----------------------- input : Period(12),선두께(2); Var:하락색(Red), 상승색(Blue); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/; Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); var : box(0),box1(0); r[0] = 0; r[1] = 2; r[2] = 3.; r[3] = -1; r[4] = -2.; r[5] = 1; r[6] = 0.5; 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]; //ZZ[j+1] = ZZ[j]; } LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; 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]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } box = box_new(date11,time11,Value11,date12,time12,Value12); Box_SetColor(box,상승색); Box_SetFill(box,true); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date22 = date[0]; time22 = stime[0]; Box_SetEnd(box,date12,time12,Value12); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; //ZZ[j+1] = ZZ[j]; } HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; 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]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } box = box_new(date11,time11,Value11,date12,time12,Value12); Box_SetColor(box,하락색); Box_SetFill(box,true); } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; Box_SetEnd(box,date12,time12,Value12); } } ---------------------- 위 수식어와 그래프는 좀전 고성님이 올리신 추세선지표 입니다. 시스템으로 변경하고자 합니다. 적색 시작 싯점 이후 파란색 시작전까지 바이 청산 파란색 시작 싯점 이후 적색 시작전까지 셀 청산의 시스템을 넣고자합니다. 매매시간은 07:00~ 익일05:55 손절 50틱
프로필 이미지
푸른
2022-11-03
1202
글번호 163491
시스템
답변완료

79419 시스템 검토및 수정 부탁드립니다

### 다시부탁 드려요 과거의 신호도 부탁 드려요 @@@@ 79419 번입니다 1,번 input : length(12),reverse(false); var : hh(0),ll(0),ps(0),pssig(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 pssig == 1 then buy(); if pssig == -1 then sell(); 2,번 input : Period1(5),Period2(10),d1(2),period(40); var : RSIv(0),rsis(0),stdv(0),t1(0),t2(0),b(0),s(0); 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 b >= 2 Then buy(); if s >= 2 Then sell(); 3,번 Input : Period(3),Period1(4),Period2(5),Period3(6),Period4(7), LPercent(30), SPercent(65); var : Relative(0),Relative1(0),Relative2(0),Relative3(0),Relative4(0); Relative = RSI(Period); Relative1 = RSI(Period1); Relative2 = RSI(Period2); Relative3 = RSI(Period3); Relative4 = RSI(Period4); Var : value(0); value = RSI(Period); # 매수/매도청산 If Relative > 65 && Relative1 > 65 && Relative2 > 65 && Relative3 > 65 && Relative4[1] < 65 && CrossUP(Relative4, sPercent) Then { Buy(); } # 매도/매수청산 If CrossDown(Relative1, lPercent) Then { Sell(); } 4,번 input : dayLen(18); var : ii(0); Var1 = (close - close[DayLen - 1]) / (DayLen - 1); Var2 = 0; For ii = 2 To DayLen - 1 begin Var2 = Var2 + abs(close[DayLen - ii] - Close[DayLen - 1] - (ii - 1) * Var1); end; If Var2 <> 0 Then { If DayLen / 2 == 0 Then Var3 = accumN(close, DayLen) - DayLen * close[DayLen - 1] - (DayLen * (DayLen - 2) / 2 + DayLen / 2) * Var1; Else Var3 = accumN(close, DayLen) - DayLen * close[DayLen - 1] - DayLen * (DayLen - 1) / 2 * Var1; If Var3 > 0 Then Var4 = (Var2 - Var3) / 2 + Var3; Else Var4 = (Var2 + Var3) / 2; Var5 = Var4 / Var2 * 100; If Var1 > 0 And Var5 < 20 Then buy("매수", Atmarket); If Var1 < 0 And Var5 > 80 Then sell("매도", Atmarket); } 위 1번 2번 3번 4번 시스템을 하나로 부탁드립니다 ## 각각의 신호에 번호 부여 부탁 드립니다 ## 첨부사진1 1 2 3 4 시스템 인데 과거 신호 두 없네요 첨부사진2 1번은 오늘만들어주신호 옆사진은 신호식 1번 인데 매수신호가 1과 2번 신호가 상이하네요
프로필 이미지
매치다는
2022-11-02
1046
글번호 163490
시스템
답변완료

수정부탁드립니다

강조 부탁 드립니다. Input : short(12), long(26), signal(9); Var : MACDV(0),MACDS(0),MACDO(0),TX(0); var : TL(0),T(0); MACDV = MACD(short, long); MACDV = ema(MACDV,signal); MACDO = MACDV-MACDS; plot1(MACDV,"MACD"); 2)강조식 부탁 드립니다. inputs: bATRLength1(100), bATRMult1(2.9); vars: bATR1(0), bavg1(0), bdn1(0), bup1(0), btrend1(1), bflag1(0), bflagh1(0), bqqq1(0); bATR1 = ATR(bATRLength1) * bATRMult1; bavg1 = (High + Low)/2; bup1 = bavg1 + bATR1; bdn1 = bavg1 - bATR1; if close > bup1[1] then btrend1 = 1; else if close < bdn1[1] then btrend1 = -1; if btrend1 < 0 and btrend1[1] > 0 then bflag1 = 1; else bflag1 = 0; if btrend1 > 0 and btrend1[1] < 0 then bflagh1 = 1; else bflagh1 = 0; if btrend1 > 0 and bdn1 < bdn1[1] then bdn1=bdn1[1]; if btrend1 < 0 and bup1 > bup1[1] then bup1=bup1[1]; if bflag1 == 1 then bup1 = bavg1 + bATR1; if bflagh1 == 1 then bdn1 = bavg1 - bATR1; if btrend1 == 1 then bqqq1 = bdn1; else bqqq1 = bup1; Plot1(bqqq1,"bqqq1",iff(btrend1 == 1, Red, Blue)); //plot2(MACDS,"MACD cc"); if MACDO > 0 then { IF MACDO >= MACDO[1] Then { T = 1; plot3(MACDO,"c1",RED); } Else { T = 2; plot3(MACDO,"c1",BLUE); } } else { IF MACDO <= MACDO[1] Then { T = -1; plot3(MACDO,"c1",BLACK); } Else { T = -2; plot3(MACDO,"c1",GREEN); } }
프로필 이미지
외국인
2022-11-02
1047
글번호 163483
강조
답변완료

추세선 박스

input : Period(12),선두께(2); Var:상승색(Red), 하락색(Blue); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/; Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); r[0] = 0; r[1] = 2; r[2] = 3.; r[3] = -1; r[4] = -2.; r[5] = 1; r[6] = 0.5; 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]; //ZZ[j+1] = ZZ[j]; } LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,하락색); Tx = Text_New(date11,time11,Value11,"●"); #동그라미 색상, 빨강 Text_SetColor(Tx,Blue); Text_SetStyle(Tx,2,2); Text_SetSize(tx,7); //tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+NumToStr(value11,2)+NewLine); //Text_SetStyle(tx,2,1); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } #TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]); #TL_SetColor(TL2[1],RED); #TL_SetStyle(TL2[1], 3); #TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]); #TL_SetColor(TL2[2],RED); #TL_SetSize(TL2[2],1); #TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2)); #Text_SetColor(Tx2[2],BWHITE); #Text_SetStyle(TX2[2],1,1); #TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]); #TL_SetColor(TL2[3],RED); #TL_SetStyle(TL2[3], 3); #TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]); #TL_SetColor(TL2[4],RED); #TL_SetSize(TL2[4],1); #TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2)); #Text_SetColor(Tx2[4],BWHITE); #Text_SetStyle(TX2[4],1,0); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_SetEnd(TL2[0],date22,time22,fr[0]); TL_SetEnd(TL2[1],date22,time22,fr[1]); TL_SetEnd(TL2[2],date22,time22,fr[2]); Text_SetLocation(TX2[2],date22,time22,fr[2]); TL_SetEnd(TL2[3],date22,time22,fr[3]); TL_SetEnd(TL2[4],date22,time22,fr[4]); Text_SetLocation(TX2[4],date22,time22,fr[4]); TL_SetEnd(TL2[5],date22,time22,fr[5]); TL_SetEnd(TL2[6],date22,time22,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; //ZZ[j+1] = ZZ[j]; } HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,상승색); Tx1 = Text_New(date11,time11,Value11,"●"); #동그라미 색상, 파랑 Text_SetColor(Tx1,Red); Text_SetStyle(Tx1,2,2); Text_SetSize(tx1,7); //tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)+NewLine+NumToStr(value11,2)); //Text_SetStyle(tx,2,0); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_SetEnd(TL3[0],date32,time32,fr[0]); TL_SetEnd(TL3[1],date32,time32,fr[1]); TL_SetEnd(TL3[2],date32,time32,fr[2]); Text_SetLocation(TX3[2],date32,time32,fr[2]); TL_SetEnd(TL3[3],date32,time32,fr[3]); TL_SetEnd(TL3[4],date32,time32,fr[4]); Text_SetLocation(TX3[4],date32,time32,fr[4]); TL_SetEnd(TL3[5],date32,time32,fr[5]); TL_SetEnd(TL3[6],date32,time32,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } TL_SetSize(TL1,선두께); //TL_SetEnd(tl,NextBarSdate,NextBarStime,NextBarOpen); 상승추세 red ,하락추세 blue 색으로, 차트 표시는 삭제하고 지표에 박스형 표시. 감사합니다.
프로필 이미지
고성
2022-11-02
1175
글번호 163471
지표
답변완료

지표만들기

키움수식을 예스 버젼으로 부탁드립니다.. 지표1.... 수식1 PVI(c)+NVI(c) 수식2 AVG(PVI(c),PERIOD)+AVG(NVI(c),PERIOD) 수식3 A=PVI(c)+NVI(c); B=AVG(PVI(c),PERIOD)+AVG(NVI(c),PERIOD); MIN(A,B) 부탁드립니당^^ 지표2..... 키움수식 강세패턴 A=PVI(c)+NVI(c); B=AVG(PVI(c),PERIOD)+AVG(NVI(c),PERIOD); crossup(A,B) 약세패턴 A=PVI(c)+NVI(c); B=AVG(PVI(c),PERIOD)+AVG(NVI(c),PERIOD); crossdown(A,B) period 25 예스트레이더에서 강조형식으로 해주시면 감사하겟습니당^^
프로필 이미지
블루베리
2022-11-02
1315
글번호 163468
지표
답변완료

다른 신호에 대한 중복신호 구분 진입

안녕하세요 매번 답변해 주시느라 노고가 많으십니다 궁금한게 있어서 문의드립니다. 매수 매도에서 분할매수를 허용하다보니 피라미딩에서 중복신호를 모두 허용해야겠는데 전체 수식 안에서 중복신호를 허용 안하는 별도로 매수매도 식을 구분 관리 하고싶은데 가능할까요? 예를 들어 A 매수진입은 중복진입으로 B매수진입은 중복 허용을 안하고 싶습니다.
프로필 이미지
hi2378
2022-11-02
1238
글번호 163467
시스템