커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

도움 부탁드립니다

안녕하세요 늘 도움주셔서 감사드립니다. 아래의 지표 내용중에서 캔들에 "●","▼","▲" 표시를 하는 부분이 있습니다. 총 8개 인데 이 부분을 검색식으로나, 아니면 강조식이든 켄들이 종가 마감이 아닌 캔들이 시작될때 표시되었으면 합니다. 표현이 제대로 되었는지 ... 고맙습니다. input : length(20); input : len2(10); input : showsignals(true); input : highlighting(true); var : upper(0),lower(0); lower = lowest(L,length); upper = highest(H,length); plot1(upper, "Upper"); plot2(lower, "Lower"); var : up(0),down(0),sup(0),sdown(0); var : k1(0),k2(0),k3(0),k4(0),i1(-1),i2(-1); up=highest(high,length); down=lowest(low,length); sup=highest(high,len2); sdown=lowest(low,len2); if high >= up[1] Then i1 = 0; Else { if i1 >= 0 Then i1 = i1+1; } if Low <= down[1] Then i2 = 0; Else { if i2 >= 0 Then i2 = i2+1; } K1=iff(i1 <=i2, down , up); K2=iff(i1 <= i2,sdown,sup); K3=iff(close>K1,down,nan); K4=iff(close<K1,up,nan); plot3(K1,"Trend Line",red); plot4(K2,"Exit Line",blue); var : buySignal(False),sellSignal(False),buyExit(False),sellExit(False); var : O1(-1),O2(-1),O3(-1),O4(-1); var : E1(-1),E2(-1),E3(-1),E4(-1); var : tx1(0),tx2(0),tx3(0),tx4(0); var : tx5(0),tx6(0),tx7(0),tx8(0); buySignal=high==upper[1] or CrossUp(high,upper[1]); sellSignal = low==lower[1] or CrossUp(lower[1],low); buyExit=low==sdown[1] or CrossUp(sdown[1],low); sellExit = high==sup[1] or CrossUp(high,sup[1]); if BuySignal == true Then var1 = Index; if sellSignal == true Then var2 = Index; if buyExit == true Then var3 = Index; if sellExit == true Then var4 = Index; O1= IFf(var1 > 0,Index-var1,-1); O2= IFf(var2 > 0,Index-var2,-1); O3= IFf(var3 > 0,Index-var3,-1); O4= IFf(var4 > 0,Index-var4,-1); if BuySignal[1] == true Then var5 = Index; if sellSignal[1] == true Then var6 = Index; if buyExit[1] == true Then var7 = Index; if sellExit[1] == true Then var8 = Index; E1= IFf(var5 > 0,Index-var5,-1); E2= IFf(var6 > 0,Index-var6,-1); E3= IFf(var7 > 0,Index-var7,-1); E4= IFf(var8 > 0,Index-var8,-1); if buySignal and O3<O1[1] Then { tx1 = Text_New(sDate,sTime,down,"●"); Text_SetColor(tx1,Green); } if buySignal and showsignals and O3<O1[1] Then { tx2 = Text_New(sDate,sTime,down,"▲"); Text_SetColor(tx2,Green); } if sellSignal and O4<O2[1] Then { tx3 = Text_New(sDate,sTime,up,"●"); Text_SetColor(tx3,Red); } if sellSignal and showsignals and O4<O2[1] Then { tx4 = Text_New(sDate,sTime,down,"▼"); Text_SetColor(tx4,Red); } if buyExit and O1<O3[1] Then { tx5 = Text_New(sDate,sTime,up,"●"); Text_SetColor(tx5,blue); } if buyExit and showsignals and O1<O3[1] Then { tx6 = Text_New(sDate,sTime,down,"▼"); Text_SetColor(tx6,blue); } if sellExit and O2<O4[1] Then { tx7 = Text_New(sDate,sTime,down,"●"); Text_SetColor(tx7,Yellow); } if sellExit and showsignals and O2<O4[1] Then { tx8 = Text_New(sDate,sTime,down,"▲"); Text_SetColor(tx8,blue); }
프로필 이미지
라몬
2025-01-13
511
글번호 187149
지표
답변완료

질문드리겠습니다

답변감사드립니다 전에 질문에서 countif로 질문을 드렸던 이유가 조건검색 환경에서 aa[0] > aa[1]*1.05 인 조건이 예를들어 "200봉 이내에서 3회이상 발생했을때 검색"을 하려고 했던건데요, 만약에 아래와 같은 방법으로 작성 (cnt 범위는 수정을 한다고 했을때)하게 되면 h>l*1.08 이 가장 최근봉 (현재 진행봉) 이어야만 검색이 가능한건가요? 조건검색은 차트상 가장 최근봉 기준으로 검색이돼서 현재 당장에 발생한 봉만이 아니라, 과거의 만족 시점들도 찾으려면 countif 를 써야하는데 아래식처럼 모든봉 기준이 아니라, 특정 조건+배열로 묶었을때의 상황에서는 어떻게 작성해야되는지 궁금합니다 조건이 차트상에서 0봉이 아니라 과거에 있었던 거라면 ( 예를 들어 가장 최근 조건만족봉이 차트상 현재봉에서 N 봉 전에 나왔었다면), "200봉 이내에 3회이상 발생" 이라는 조건을 검색하려면 어떻게 작성하면 될까요 감사합니다 var : cnt(0),count(0); Array : aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1 = Index; Var2 = var1[1]; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; if aa[0] > aa[1]*1.05 Then Plot12(h,"aa comp",Green,Def,1); count = 0; for cnt = 0 to 4 { if aa[cnt] > aa[cnt+1]*1.05 then count = count+1; } if count >= 3 then Plot13(h,"CountIf",Red,Def,1); }
프로필 이미지
yamu
2025-01-14
552
글번호 187148
종목검색
답변완료

예트 코드 올립니다.잘못된 주문이 나갑니다. 검토바랍니다.

var : vEntryPrice(2232.9), vExitPrice(2345.9), vLossCutPrice(2188.2); // 매수진입부분 if C > vLossCutPrice and C <= vEntryPrice and MarketPosition == 0 Then Buy("매수", AtMarket); // 익절부분. 로직에따라 SetStopProfittarget 사용 if C >= vExitPrice and MarketPosition == 1 Then ExitLong("매수청산", AtMarket); // 손절매. 로직에따라 SetStopLoss 사용 if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 첨부한 1/9 매수가격 일시 이후에 실행했기에 매수는 이루어지지 않았습니다. (eFriend Force 스샷보시면 매수 없습니다) 그런데 첨부한 스샷처럼 1/10 같은 시간에 exitlong과 손절이 됐습니다. 1. MarketPosition이 1일때 주문하도록 조건이 들어갔는데 왜 매도 주문이 나갔을까요? 2. 왜 매도주문이 2개가 같은 시간에 동시에 나갔을까요? 추가 필요한 자료 있으면 올리겠습니다.
프로필 이미지
typeb
2025-01-12
522
글번호 187144
시스템
답변완료

질문드리겠습니다

안녕하세요 몇가지 여쭤보겠습니다 질문1) 아래와 같은 수식에서 1 to (var2-var1)-1 구간의 평균을 value1 에 구해놨는데요,, 1 to (var2-var1)-1 구간에서 value1 값보다 큰 H 값이 나올때마다 저장을하고 (최고가 값을 구하는게 아님) 그 모든 H 값들을 더해서 평균을 구하는 수식을 만들고 싶습니다 감사합니다 var : cnt(0), sum1(0), sumi(0),tt(0),hh(0),ll(0); var : t(0),StartBarIndex(0); Array : ii[50](0),aa[50](0); if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1 = Index; Var2 = var1[1]; sum1=0; sumi=0; For cnt = 1 to (var1-Var2)-1 { sum1=sum1+h[cnt]; sumi=sumi+1; } value1=sum1/sumi; if value1>0 then Plot11(value1,"sma",Blue,Def,1); } 질문2) countif 관련 질문인데요 countif 는 현재봉 기준으로 과거 일정 기간동안 조건이 횟수만큼 발생하면 신호가 나오는게 맞지 않나요? 아래 수식과 같이 h>l*1.08 라는 조건문 안에 countif 가 있으면, if CountIf(aa[0] > aa[1]*1.05,5)>=4 이 부분을 어떻게 처리하는건지 궁금합니다 현재봉이 직전봉 (배열) 보다 5%이상 크다 라는 조건이 4회이상 나온다 라는 의도로 작성했습니다. 처음에는 100봉 같이 기간을 길게 잡고 했었는데 5봉 같이 짧은기간에도 나오길레 조건만족봉에서 뒤로 5개봉이내가 아니라 조건만족에 해당한 봉들 5개 이내이며, countif 에 들어간 조건은 h>l*1.08 조건만족 해당할때만 (즉 조건 두가지 모두 만족), 이라는 의미인거 같은데.. 조건에 맞지 않는데도 신호가 나올때가 있어서 헷갈리네요 if h>l*1.08 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1 = Index; Var2 = var1[1]; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = h; if aa[0] > aa[1]*1.05 Then Plot12(h,"aa comp",Green,Def,1); if CountIf(aa[0] > aa[1]*1.05,5)>=4 Then Plot13(h,"CountIf",Red,Def,1); }
프로필 이미지
yamu
2025-01-13
573
글번호 187143
지표
답변완료

안녕하세요

수고하십니다. 챠트에서 상하 여백을 100으로 설정하면 보조지표도 같이 상하 100으로 변경되는데.. 챠트만 상하여백 100되고 보조챠트(거래량 나오는칸) 변경 안되게 하는방법 없어면.. 각각 수정 부탁합니다' 추가로 현재가 기준으로 챠트 중앙에 위치 하도록 하는 기능이 있으면 합니다. (보조툴바에 넣었으면 합니다. 전체적용 일부챠트적용 각각 나누어서..) 피보나치 목적치 값을 볼려고 하면 현재가가 도달해야 보이니 .. 30초 챠트도 지원 부탁합니다.
프로필 이미지
fill
2025-01-13
527
글번호 187142
시스템
답변완료

자동정정주문관련

시장가로 주문 설정을 하였는데 시세급변으로 주문거부가 나서 체결이 안될 경우 설정창에서 자동정정주문을 설정하면 기존 주문은 취소가 되고 해당되는 초 후에 당시의 상대호가 (상대5호까지 설정가능하던데) 설정한 호가에 주문이 다시 나가는 지 궁금합니다. 주문거부에 대한 답변을 메일로 보내드렸습니다. 확인좀 부탁드립니다.
프로필 이미지
산수유
2025-01-13
442
글번호 187135
시스템
답변완료

해외선물 분봉 시스템입니다 .부탁드립니다.

수식 좀 부탁드립니다 도와주시면 제가 그거 보고 연구해서 공부해보겠습니다. 메뉴얼만 봐서는 이해가 잘 안가서요. 해외선물에서 종목 선택 후 시스템을 돌려놓으면 뉴욕장 시작 이후에만 신호가 들어갔으면 합니다. 매수법칙은 -뉴욕장 시작 후 그날의 시가(그날의 시가는 아침의 시가입니다. )를 10분봉으로 종가로 돌파하면 매수입니다. (매수 주문이 나가기 위해서는 시가는 시가 아래에 있어야 하고 종가로 시가를 돌파해야 합니다) -그리고 매수주문이 나가면 그 돌파봉의 저가를 스탑주문으로 자동으로 두게 합니다. -그리고 만약 그 돌파봉의 저가를 종가로 깨게되면 자동으로 매도로 바꾸고 그 도파봉의 고가를 스탑으로 하는 매도주문이 발동됩니다. -이런 스위치는 3회까지만 허용하고 만약 3회 손절 나간경우 그날 거래는 끝이 나게 됩니다. -이익거래의 경우 특정 시간(제가 지정한 시간에(예를들어 새벽 5시)) 자동 청산하게 됩니다. 감사합니다.
프로필 이미지
불비타인
2025-01-13
448
글번호 187128
시스템

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
하날랑
2025-01-13
6
글번호 187127
시스템
답변완료

종목검색식 부탁드림니다.

항상 노고에 감사드림니다. 아래의 수식을 종목검색식으로 부탁드림니다. Crossup(ADX(120),DIMinus(120))
프로필 이미지
존슨비치
2025-01-13
462
글번호 187123
종목검색
답변완료

문의 드립니다

input:length(2),a틱(30),b틱(30),c틱(2); 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); input : StartTime(100000),EndTime(53000); var : Tcond(false); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; IF Endtime <= starttime Then { SetStopEndofday(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],"+"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0)); Text_SetStyle(Text1, 2, 1); } Else { Text_Delete(text1); Text1 = Text_New(sDate[eBar],sTime[eBar],HH[1,1],"+"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,2)); Text_SetStyle(Text1, 2, 1); } Text_SetStyle(Text1, 2, 1); } if MarketPosition <= 0 and HH[2,1] >= LL[2,1]+PriceScale*a틱 and LL[1,1] <= HH[2,1]-PriceScale*b틱 and Tcond == true Then Buy("b",AtStop,HH[2,1]+PriceScale*c틱); } 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(abs(HH[1,1]-LL[1,1])/PriceScale,0)); Text_SetStyle(Text1, 2, 0); } Else { Text_Delete(text1); Text1 = Text_New(sDate[eBar],sTime[eBar],LL[1,1],"-"+NumToStr(abs(HH[1,1]-LL[1,1])/PriceScale,0)); Text_SetStyle(Text1, 2, 0); } } if MarketPosition >= 0 and LL[2,1] <= HH[2,1]-PriceScale*a틱 and HH[1,1] >= LL[2,1]+PriceScale*b틱 and Tcond == true Then Sell("s",AtStop,LL[2,1]-PriceScale*c틱); } if MarketPosition == 1 and IsEntryName("b") == true Then Sell("bs",AtStop,EntryPrice-PriceScale*50); if MarketPosition == -1 and IsEntryName("s") == true Then Buy("sb",AtStop,EntryPrice+PriceScale*50); 위 수식어에 당일 매매중 70틱 수익에 매매정지를 포함해 주시면 감사하겠습니다.
프로필 이미지
푸른
2025-01-13
636
글번호 187117
시스템