답변완료
문의드립니다
안녕하세요? 아래 지표수식에서 노란색 물음표 ? 가 나올때마다 1봉뒤 즉 다음봉시가에서 매수또는 매도 신호가 발생되도록 시스템식으로부탁드립니다 감사합니다 input:length(12);Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),process(0),T(0);Array:HH[10,2](0),LL[10,2](0);var : idx(0),TL2(0),LRLv(0),LRSv(0),maxR(0),cnt(0),mid(0);var : TL21(0),TL22(0),TL23(0);process = 0;If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If LL[1,1] > L Then process = -1; If HH[1,1] < H Then process = 1;} Else If Highest(H,length) == H and lastHiVal <> H Then process = 1;Else If Lowest(L,length) == L and lastLoVal <> L Then process = -1; If process == 1 Then { T = 1; lastHiVal = H; If HH[1,2] < LL[1,2] Then { For j = 10 DownTo 2 { HH[j,1] = HH[j-1,1]; HH[j,2] = HH[j-1,2]; } } If HH[1,2] < LL[1,2] or HH[1,1] < H Then { HH[1,1] = H; HH[1,2] = Index; sBar = Index - LL[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } if LL[1,1] > 0 Then { TL1 = TL_New(sDate[sBar],sTime[sBar],LL[1,1],sDate[eBar],sTime[eBar],HH[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],NewLine+NumToStr(HH[1,1],2)); Text_SetStyle(Text1, 2, 1); } Else { Text_Delete(text1); Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],NewLine+NumToStr(HH[1,1],2)); Text_SetStyle(Text1, 2, 1); } Text_SetStyle(Text1, 2, 1); }}If process == -1 Then { T = -1; lastLoVal = L; If LL[1,2] < HH[1,2] Then { For j = 10 DownTo 2 { LL[j,1] = LL[j-1,1]; LL[j,2] = LL[j-1,2]; } } If LL[1,2] < HH[1,2] or LL[1,1] > L Then { LL[1,1] = L; LL[1,2] = Index; sBar = Index - HH[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); } if HH[1,1] > 0 Then { TL1 = TL_New(sDate[sBar],sTime[sBar],HH[1,1],sDate[eBar],sTime[eBar],LL[1,1]); Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(Text1, 2, 0); } Else { Text_Delete(text1); Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],NumToStr(LL[1,1],2)); Text_SetStyle(Text1, 2, 0); } }}if T != T[1] Then{ if T == 1 Then { idx = LL[1,2]; } if T == -1 Then { idx = HH[1,2]; } TL21 = TL2[1]; TL22 = TL21[1]; TL23 = TL22[1]; TL_Delete(TL23);}if idx > 0 Then{ LRLv = LRL(C,index-idx); LRSv = LRS(C,Index-idx); maxR = 0; For cnt = 0 to Index-idx+1 { Mid = LRLV-LRSv*cnt; if abs(L[cnt]-Mid) > maxR Then maxR = abs(L[cnt]-Mid); if abs(H[cnt]-Mid) > maxR Then maxR = abs(H[cnt]-Mid); } if T != T[1] Then { TL_SetExtRight(TL2,False); TL2 = TL_New(sDate[Index-idx],sTime[Index-idx],Mid,sDate,sTime,LRLv); TL_SetExtRight(TL2,true); TL_SetColor(tL2,Red); } Else { if T == 1 and HH[1,1] != HH[1,1][1] Then { TL_SetBegin(TL2,sDate[Index-idx],sTime[Index-idx],Mid); TL_SetEnd(TL2,sDate,sTime,LRLv); } if T == -1 and LL[1,1] != LL[1,1][1] Then { TL_SetBegin(TL2,sDate[Index-idx],sTime[Index-idx],Mid); TL_SetEnd(TL2,sDate,sTime,LRLv); } }}//---------------------------------------------// 검정추세선(TL1)과 빨강추세선(TL2) 교차 감지 //---------------------------------------------Vars: valTL1(0), valTL2(0), diff(0), LastCrossBar(0), TxtID(0);If TL1 > 0 and TL2 > 0 ThenBegin // 각 추세선의 현재 시점 가격값 가져오기 valTL1 = TL_GetValue(TL1, Date, Time); valTL2 = TL_GetValue(TL2, Date, Time); If (valTL1 > 0) and (valTL2 > 0) Then Begin diff = AbsValue(valTL1 - valTL2); // 두 선의 가격 차이가 3틱 이하일 때 If diff <= (PriceScale * 3) Then Begin // 중복 표시 방지 If LastCrossBar <> Index Then Begin TxtID = Text_New(Date, Time, (valTL1 + valTL2) / 2, "?"); Text_SetColor(TxtID, Yellow); Text_SetSize(TxtID, 20); Text_Setbold(txtID,10); LastCrossBar = Index; End; End; End;End;//If diff <= (PriceScale * 3) Then//예://*2 → 더 민감하게,//*5 → 더 느슨하게.