답변완료
지표작성 부탁드립니다.
안녕하세요. 운영자님예스나AI 로 Fair Value Gap 과 Order Block 을 표시하는 지표를 만들었는데 차트에 적용시켜 보면 나타나지 않습니다.검토 부탁드립니다.// FairValueGap & OrderBlock 표시 지표// 제목: FVG & OrderBlockinput : Lookback(50), FVGMinSize(0.5), OBStrengthThreshold(2);Array : BoxId[50](0);Var : i(0), j(0), k(0);Var : fvgTop(0), fvgBottom(0), fvgHeight(0), fvgTop2(0), fvgBottom2(0), fvgH2(0);Var : bodySize(0), avgBody(0), obTop(0), obBottom(0);// 초기 인덱스 카운트j = 0;For i = 1 To Lookback{ // Fair Value Gap (3-bar 패턴) // 상승 FVG 조건: Low[i-1] > High[i+1] fvgTop = Low[i-1]; fvgBottom = High[i+1]; fvgHeight = fvgTop - fvgBottom; If fvgHeight >= FVGMinSize Then { BoxId[j] = Box_New(sDate[Index - i + 1], sTime[Index - i + 1], fvgTop, sDate[Index - i - 1], sTime[Index - i - 1], fvgBottom); Box_SetColor(BoxId[j], Cyan); j = j + 1; if j >= 50 Then j = 0; } // 반대 방향 FVG (하락) fvgTop2 = Low[i+1]; fvgBottom2 = High[i-1]; fvgH2 = fvgTop2 - fvgBottom2; If fvgH2 >= FVGMinSize Then { BoxId[j] = Box_New(sDate[Index - i - 1], sTime[Index - i - 1], fvgTop2, sDate[Index - i + 1], sTime[Index - i + 1], fvgBottom2); Box_SetColor(BoxId[j], Cyan); j = j + 1; if j >= 50 Then j = 0; } // Order Block 탐지: 현재 바디가 최근 10봉 평균 바디의 OBStrengthThreshold 배 이상이면 OB로 간주 bodySize = Abs(C[i] - O[i]); avgBody = 0; For k = 1 To 10 { avgBody = avgBody + Abs(C[k] - O[k]); } avgBody = avgBody / 10; If avgBody > 0 And bodySize >= avgBody * OBStrengthThreshold Then { obTop = Max(O[i], C[i]); obBottom = Min(O[i], C[i]); BoxId[j] = Box_New(sDate[Index - i], sTime[Index - i], obTop, sDate[Index - i], sTime[Index - i], obBottom); If C[i] < O[i] Then Box_SetColor(BoxId[j], Red); Else Box_SetColor(BoxId[j], Lime); j = j + 1; if j >= 50 Then j = 0; }}// 지표용 기준선 없음, 박스만 표시
답변완료
지표작성 부탁드립니다.
안녕하세요. 운영자님AI 서비스로 지표를 만들고 있는데 해결되지 않는 문제가 있습니다.제가 구현하고 싶은 바는 현재봉(그림에서 음봉 도지캔들)의 바로 이전 캔들(직전봉)의 고가, 저가, 시가, 종가, (고가+저가)/2, (시가+종가)/2 되는 지점에 선을 그어주는 지표를 만들고 싶습니다. AI로 작성 시 현재캔들 기준 전전캔들에 만들어 지고 있습니다.오류 수정 부탁 드립니다. 그리고 새로운 캔들이 발생 시 자동적으로 직전캔들에 새로운 선이 그어질 수 있도록 부탁 드립니다.수고하세요// 제목: 직전캔들 기준 수평선 표시 지표// 직전봉의 고가, 저가, 시가, 종가, (고+저)/2, (시+종)/2에 수평선 생성Input : LineColor(1); //색상 인덱스(숫자형)Var : prevH(0), prevL(0), prevO(0), prevC(0), prevMidHL(0), prevMidOC(0); //직전봉 가격값Var : TL_H(0), TL_L(0), TL_O(0), TL_C(0), TL_MHL(0), TL_MOC(0); //추세선 아이디If CurrentBar > 1 Then{ // 직전봉 가격 계산 prevH = High[1]; prevL = Low[1]; prevO = Open[1]; prevC = Close[1]; prevMidHL = (prevH + prevL) / 2; prevMidOC = (prevO + prevC) / 2; // 이전에 만들어둔 라인이 있으면 삭제 If TL_H > 0 Then TL_Delete(TL_H); If TL_L > 0 Then TL_Delete(TL_L); If TL_O > 0 Then TL_Delete(TL_O); If TL_C > 0 Then TL_Delete(TL_C); If TL_MHL > 0 Then TL_Delete(TL_MHL); If TL_MOC > 0 Then TL_Delete(TL_MOC); // 직전봉의 날짜/시간에서 다음봉 시가의 날짜/시간까지 수평선 생성 TL_H = TL_New(sDate[1], sTime[1], prevH, NextBarSdate, NextBarStime, prevH); TL_SetColor(TL_H, LineColor); TL_SetStyle(TL_H, 1); TL_SetExtRight(TL_H, True); TL_L = TL_New(sDate[1], sTime[1], prevL, NextBarSdate, NextBarStime, prevL); TL_SetColor(TL_L, LineColor); TL_SetStyle(TL_L, 1); TL_SetExtRight(TL_L, True); TL_O = TL_New(sDate[1], sTime[1], prevO, NextBarSdate, NextBarStime, prevO); TL_SetColor(TL_O, LineColor); TL_SetStyle(TL_O, 2); TL_SetExtRight(TL_O, True); TL_C = TL_New(sDate[1], sTime[1], prevC, NextBarSdate, NextBarStime, prevC); TL_SetColor(TL_C, LineColor); TL_SetStyle(TL_C, 2); TL_SetExtRight(TL_C, True); TL_MHL = TL_New(sDate[1], sTime[1], prevMidHL, NextBarSdate, NextBarStime, prevMidHL); TL_SetColor(TL_MHL, LineColor); TL_SetStyle(TL_MHL, 3); TL_SetExtRight(TL_MHL, True); TL_MOC = TL_New(sDate[1], sTime[1], prevMidOC, NextBarSdate, NextBarStime, prevMidOC); TL_SetColor(TL_MOC, LineColor); TL_SetStyle(TL_MOC, 3); TL_SetExtRight(TL_MOC, True);}
답변완료
청산수식 수정
아래 수식은 4개 까지 피라미딩하는 수식입니다.문제점청산수식이 진입명대로 작동하지 않습니다.b1 진입시 손절과 트레일링스탑b2 진입시 손절과 트레일링스탑b3 진입시 손절과 트레일링스탑b4 진입시 손절과 트레일링스탑위 내용이 구분되어 작동될 수 있도록 청산수식 수정바랍니다.항상 고맙습니다.**********************************************************************************************************************// Data2 기반 피라미딩 전략 (개선된 청산명 식별)Input : MaxPyramids(4), 양봉1(7), 양봉2(3);input : als(500),atr(1000);input : bls(1000),btr(1500);input : cls(1500),ctr(2000);input : dls(2000),dtr(2500);input : eod(151900);Var : entryCount(0), bullCount(0), b1Placed(false);Var : lastEntryName(""); // 마지막 진입명 저장// 새 영업일 초기화If data2(Bdate) != data2(Bdate[1]) Then{ entryCount = 0; bullCount = 0; b1Placed = False; lastEntryName = "";}// 1) 초회 진입: data1와 data2 영업일 같고 data2 첫 양봉일 때If MarketPosition == 0 And data1(Bdate) == data2(Bdate) And b1Placed == False And data2(C) > data2(O) Then{ Buy("b1", onclose, Def); entryCount = 1; bullCount = 0; b1Placed = True; lastEntryName = "b1";}// 2) 피라미딩 로직 (최대 MaxPyramids)If MarketPosition >= 1 Then{ // data2 양봉/음봉 카운트 업데이트 If data2(C) > data2(O) Then bullCount = bullCount + 1; // 음봉 발생 시 다음 진입 조건 확인 If data2(C) < data2(O) Then { // 두번째 진입: b1 진입 이후 첫 음봉 If entryCount == 1 And entryCount < MaxPyramids Then { Buy("b2", onclose, Def); entryCount = 2; bullCount = 0; lastEntryName = "b2"; } // 세번째 진입: 두번째 진입 후 양봉 양에 따른 진입 Else If entryCount == 2 And entryCount < MaxPyramids And bullCount >= 양봉1 Then { Buy("b3", onclose, Def); entryCount = 3; bullCount = 0; lastEntryName = "b3"; } // 네번째 진입: 세번째 진입 후 양봉 양에 따른 진입 Else If entryCount == 3 And entryCount < MaxPyramids And bullCount >= 양봉2 Then { Buy("b4", onclose, Def); entryCount = 4; bullCount = 0; lastEntryName = "b4"; } }}// 포지션이 없으면 lastEntryName 초기화If MarketPosition == 0 Then lastEntryName = "";// 청산(스탑) 설정: 마지막 진입명을 기준으로 적용If MarketPosition == 1 Then{ If lastEntryName == "b1" Then { SetStopLoss(als,PointStop); SetStopTrailing(atr,0,PointStop,1); } Else If lastEntryName == "b2" Then { SetStopLoss(bls,PointStop); SetStopTrailing(btr,0,PointStop,1); } Else If lastEntryName == "b3" Then { SetStopLoss(cls,PointStop); SetStopTrailing(ctr,0,PointStop,1); } Else If lastEntryName == "b4" Then { SetStopLoss(dls,PointStop); SetStopTrailing(dtr,0,PointStop,1); } Else { SetStopLoss(0); SetStopTrailing(0,0); }}// 당일 종료(오후 eod에 강제 청산)SetStopEndofday(eod);
2026-02-28
550
글번호 230812
시스템
답변완료
수수식문의드립니댜
c>수식라인1 and c>수식라인2 and c>수식라인3 을 만족하는 종목을 검색?<수식라인1>지수평균((lowest(종가,5)+lowest(종가,20))/2.,20) +if(종가<시가,1-(( 시가-종가) / lowest ((종가-시가),20 )),1 )*0.5 *stdev((저가+고가+종가)/3,20)<수식라인2>A1 = ((High+Close)/2)*Volume;A2 = SUM(A1,20);A3 = SUM(Volume,20);Shift(Highest((A2/A3),20),25) <수식라인3>//기간은 5 K는2M = BBandsUP(30, 1.8);LL = Lowest(M, 기간);HH = Highest(M, 기간);NL = Valuewhen(1,M<LL(1),M);Valuewhen(1,BarsSince(M<LL(1))==(기간-k),NL)
2026-02-27
600
글번호 230808
종목검색
답변완료
수식 부탁드립니다
다음 수식 변환 부탁드립니다A=Disparity(20);A1=ValueWhen(1,CrossUp(A,100) or CrossDown(A,100),(H+L)/2);갱신 = H > Highest(H(1), 5-1);기준고 = Valuewhen(1, 갱신, H);상단 = Valuewhen(1, BarsSince(갱신)==(5-2), 기준고);R1=RSI(7);R2=R1/avg(A,7)*100;CrossUp(C,상단) 감사합니다