커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식 의뢰 드립니다!

안녕하세요! 궁금한게 있어서 문의드립니다! 1. 해외선물(국내선물 포함) > 예) 호주 달러와 뉴질랜드 달러 2종목을 한 챠트에 합쳐서 매매에 도움을 받고 싶습니다! 합치는 과정을 알려 주시길 부탁 드립니다! 2. 챠트에서 합쳐진 호주 달러의 현재가 와 뉴질랜드 달러의 현재가 간에 진폭 (가격의 격차)를 실시간으로 챠트에 숫자로 나타나는 수식을 만들어 매매에 도움을 받고 싶습니다! 항상 노고에 다시 한번 감사드립니다!
프로필 이미지
qha71
2022-07-11
1501
글번호 160613
지표
답변완료

데이타2수식으로 부탁드립니다.

var : price(0),a(0),b(0),size(0); price = close; size = iff((a[1]-a[2]) > 0 or (b[1]-b[2]) < 0 , atr(20) ,TrueRange); if a[1] > a[2] Then { Condition1 = true; var1 = 0; } Else { if Condition1 == true Then var1 = var1+1; } a = max(price,a[1]) - size/pow(10,2)*(var1*2); plot1(a,"a");
프로필 이미지
아름다운아침
2022-07-10
1377
글번호 160612
지표
답변완료

수식 부탁드립니다

수고하십니다. 아래 지표에서 첨부 그림처럼 변곡점 상하 +/- 0.5 위치에 점표시를 하고 싶습니다. 수고하세요.. ########## Input:length(30); Var:최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),sBar(0),TL1(0), 고추세기울기(0),고추세봉개수(0),고추세시작(0),고추세시작IDX(0),고추세최종(0), 저추세기울기(0),저추세봉개수(0),저추세시작(0),저추세시작IDX(0),저추세최종(0); Var:고1(0),고2(0),고3(0),고4(0),고5(0),고6(0),고7(0),고8(0),고9(0),고10(0), 저1(0),저2(0),저3(0),저4(0),저5(0),저6(0),저7(0),저8(0),저9(0),저10(0), 고1IDX(0),고2IDX(0),고3IDX(0),고4IDX(0),고5IDX(0), 고6IDX(0),고7IDX(0),고8IDX(0),고9IDX(0),고10IDX(0), 저1IDX(0),저2IDX(0),저3IDX(0),저4IDX(0),저5IDX(0), 저6IDX(0),저7IDX(0),저8IDX(0),저9IDX(0),저10IDX(0); var : t(0),ii(0); #==========================================# Condition1 = Highest(C,length) == C and 최종고가 <> C; Condition2 = Lowest (C,length) == C and 최종저가 <> C; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리 Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리 } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = C; // 신규고점을 체크하기 위해 저장 If 최종변곡점 == "저점" Then { 고9 = 고8; 고9IDX = 고8IDX; 고8 = 고7; 고8IDX = 고7IDX; 고7 = 고6; 고7IDX = 고6IDX; 고6 = 고5; 고6IDX = 고5IDX; 고5 = 고4; 고5IDX = 고4IDX; 고4 = 고3; 고4IDX = 고3IDX; 고3 = 고2; 고3IDX = 고2IDX; 고2 = 고1; 고2IDX = 고1IDX; 고1 = C; 고1IDX = Index; sBar = Index - 저1IDX; // 추세선 시작점의 위치, n봉전으로 표시 TL1 = TL_New(sDate[sBar],sTime[sBar],저1,sDate[0],sTime[0],고1); TL_SetSize(TL1,1); TL_SetColor(TL1,ReD); } Else If 고1 < C Then // 1번 고점보다 높은 고가 출현 { 고1 = C; 고1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],고1); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 } /* 고점추세선 */ If 고2IDX[1] <> 고2IDX Then // 고2의 Index값이 변동 없음 즉, 새로운 고점이 생기지 않았음 { 고추세최종 = 0; 고추세기울기 = 0; 고추세시작 = 0; 고추세봉개수 = 0; If 고2 < 고3 Then { 고추세기울기 = (고2 - 고3)/(고2IDX - 고3IDX); 고추세시작 = 고3; 고추세시작IDX = 고3IDX; } Else If 고2 < 고4 Then { 고추세기울기 = (고2 - 고4)/(고2IDX - 고4IDX); 고추세시작 = 고4; 고추세시작IDX = 고4IDX; } Else If 고2 < 고5 Then { 고추세기울기 = (고2 - 고5)/(고2IDX - 고5IDX); 고추세시작 = 고5; 고추세시작IDX = 고5IDX; } Else If 고2 < 고6 Then { 고추세기울기 = (고2 - 고6)/(고2IDX - 고6IDX); 고추세시작 = 고6; 고추세시작IDX = 고6IDX; } Else If 고2 < 고7 Then { 고추세기울기 = (고2 - 고7)/(고2IDX - 고7IDX); 고추세시작 = 고7; 고추세시작IDX = 고7IDX; } Else If 고2 < 고8 Then { 고추세기울기 = (고2 - 고8)/(고2IDX - 고8IDX); 고추세시작 = 고8; 고추세시작IDX = 고8IDX; } Else If 고2 < 고9 Then { 고추세기울기 = (고2 - 고9)/(고2IDX - 고9IDX); 고추세시작 = 고9; 고추세시작IDX = 고9IDX; } 고추세봉개수 = Index - 고추세시작IDX; 고추세최종 = 고추세기울기 * 고추세봉개수 + 고추세시작; } Else If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; } If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; } 최종변곡점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = C; If 최종변곡점 == "고점" then { 저9 = 저8; 저9IDX = 저8IDX; 저8 = 저7; 저8IDX = 저7IDX; 저7 = 저6; 저7IDX = 저6IDX; 저6 = 저5; 저6IDX = 저5IDX; 저5 = 저4; 저5IDX = 저4IDX; 저4 = 저3; 저4IDX = 저3IDX; 저3 = 저2; 저3IDX = 저2IDX; 저2 = 저1; 저2IDX = 저1IDX; 저1 = C; 저1IDX = Index; sBar = Index - 고1IDX; TL1 = TL_New(sDate[sBar],sTime[sBar],고1,sDate[0],sTime[0],저1); TL_SetSize(TL1,1); TL_SetColor(TL1,BluE); } Else If 저1 > C then { 저1 = C; 저1IDX = Index; TL_SetEnd(TL1,sDate[0],sTime[0],저1); } /* 저점추세선 */ If 저2IDX[1] <> 저2IDX Then { 저추세최종 = 0; 저추세기울기 = 0; 저추세시작 = 0; 저추세봉개수 = 0; If 저2 > 저3 and 저3 > 0 Then { 저추세기울기 = (저2 - 저3)/(저2IDX - 저3IDX); 저추세시작 = 저3; 저추세시작IDX = 저3IDX; } Else If 저2 > 저4 and 저4 > 0 Then { 저추세기울기 = (저2 - 저4)/(저2IDX - 저4IDX); 저추세시작 = 저4; 저추세시작IDX = 저4IDX; } Else If 저2 > 저5 and 저5 > 0 Then { 저추세기울기 = (저2 - 저5)/(저2IDX - 저5IDX); 저추세시작 = 저5; 저추세시작IDX = 저5IDX; } Else If 저2 > 저6 and 저6 > 0 Then { 저추세기울기 = (저2 - 저6)/(저2IDX - 저6IDX); 저추세시작 = 저6; 저추세시작IDX = 저6IDX; } Else If 저2 > 저7 and 저7 > 0 Then { 저추세기울기 = (저2 - 저7)/(저2IDX - 저7IDX); 저추세시작 = 저7; 저추세시작IDX = 저7IDX; } Else If 저2 > 저8 and 저8 > 0 Then { 저추세기울기 = (저2 - 저8)/(저2IDX - 저8IDX); 저추세시작 = 저8; 저추세시작IDX = 저8IDX; } Else If 저2 > 저9 and 저9 > 0 Then { 저추세기울기 = (저2 - 저9)/(저2IDX - 저9IDX); 저추세시작 = 저9; 저추세시작IDX = 저9IDX; } 저추세봉개수 = Index - 저추세시작IDX; 저추세최종 = 저추세기울기 * 저추세봉개수 + 저추세시작; } Else If 저추세최종[1] > 0 Then { 저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작; } If 고추세최종[1] > 0 Then { 고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작; } 최종변곡점 = "저점"; }
프로필 이미지
오이도인
2022-07-10
1685
글번호 160611
지표
답변완료

상승률 합

안녕하세요 개발자님. 차트 초기 봉부터 가격 상승률의 총합을 구하려고 합니다. 근데 거의 모든 자산에서 1025 봉 부터 오류가 나오더라구요. 올바른 값이 나오게 하려면 어떻게 해야할까요? 항상 도움주셔서 감사합니다. Var11=Round((C/C[1]-1)*100,2); Var10=0; ////////////////////////////////////////////////////////// Var : cnt(0); For cnt = 0 to Index-1 step 1 { Var10=Var10+Var11[cnt]; } ///////////////////////////////////////////////////////// MessageLog("%.2f %.2f %.2f",Var11,Var10,Index);
프로필 이미지
히익
2022-07-10
1545
글번호 160610
시스템
답변완료

super trend 지표

갬블러님의 super trend지표를 보고 매수/매도 시스템식으로 하고 싶은데 이렇게하면 되는지 검토 부탁드립니다. [지표식] input : factor(3), AtrPeriod(10); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), superTrend(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * AtrV; prevLowerBand = lowerBand[1]; prevUpperBand = upperBand[1]; if lowerBand > prevLowerBand or close[1] < prevLowerBand Then lowerBand = lowerBand; Else lowerBand = prevLowerBand; if upperBand < prevUpperBand or close[1] > prevUpperBand Then upperBand = upperBand; Else upperBand = prevUpperBand; if C > UpperBand Then direction = 1; if C < LowerBand Then direction = -1; if direction == 1 Then supertrend = lowerband; Else supertrend = upperband; } if C > superTrend Then { Plot1(superTrend,"UpTrend", Pink, 0, 5); NoPlot(2); } Else { Plot2(superTrend,"DnTrend", green, 0, 5); NoPlot(1); } if direction == 1 and direction[1] == -1 Then plot3(superTrend,"BuyStart",Red,0,15); if direction == -1 and direction[1] == 1 Then plot4(superTrend,"SellStart",Blue,0,15); [매수매도 시스템식] input : factor(3), AtrPeriod(10); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), superTrend(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * AtrV; prevLowerBand = lowerBand[1]; prevUpperBand = upperBand[1]; if lowerBand > prevLowerBand or close[1] < prevLowerBand Then lowerBand = lowerBand; Else lowerBand = prevLowerBand; if upperBand < prevUpperBand or close[1] > prevUpperBand Then upperBand = upperBand; Else upperBand = prevUpperBand; if C > UpperBand Then direction = 1; if C < LowerBand Then direction = -1; if direction == 1 Then supertrend = lowerband; Else supertrend = upperband; } if direction == 1 and direction[1] == -1 Then Buy(); if direction == -1 and direction[1] == 1 Then Sell();
프로필 이미지
theogo66
2022-07-10
1873
글번호 160609
시스템
답변완료

수식 부탁합니다

MACD(12,26,9) Golden Cross 발생종목 전제 조건 1) MACD Dead cross 발생 한후 2번째 Golden Cross 일것
프로필 이미지
미래테크
2022-07-10
1516
글번호 160608
종목검색
답변완료

문의 드립니다.~~~~

전에 올려주신 답변인데 이해가 부족하여 공부를 위해 자세한 주석 부탁드립니다. 그리고 고점 저점에 대한 판단은 n틱이상 조정 받은 전고점과 전저점을 고점과 저점의 판단 기준으로 삼고 싶습니다. > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 항상 감사합니다. -전저점 대비 a틱(변수)이상 상승 후 b틱(변수)이상 하락시 고점처리 ( 챠트에 저점과 고점을 차이 틱수를 고점에 출력하고 저점과 고점을 연결하는 추세선(빨강)그림 ) -전고점 대비 b틱(변수)이상 하락 후 a틱(변수)이상 상승시 저점 처리( 챠트에 고점과 저점의 차이 차이 틱수를 저점에 출력하고 고점과 저점을 연결하는 추세선(파랑)그림) -매수진입: 저점 형성후 전고점을 돌파하여 전고점대비 c틱(변수) 상승지점에서 매수 진입. -매도진입: 고점 형성후 전저점을 돌파하여 전저점대비 c틱(변수) 하락지점에서 매도 진입. - 장중 내내 위 진입을 계속 반복하는 수식 부탁드립니다. 안녕하세요 예스스탁입니다. 올리신 내용에 기준이 되는 고점과 저점 판단에 대한 내용이 없습니다. 게시판에 많이 사용되는 지그재그 식을 이용해 작성해 드립니다. input:length(5),a틱(10),b틱(10),c틱(5); 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); 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틱 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틱 Then Sell("s",AtStop,LL[2,1]-PriceScale*c틱); }
프로필 이미지
예스요
2022-07-10
1873
글번호 160607
시스템
답변완료

함수 사용은 어떻게 하나요 (초보)

정말 수고 많으십니다.. 제가 시스템 매매가 처음이라 초보적이 질문좀 하려 합니다.. 제가 수식을 질문하고 답면을 받았읍니다.. 그런데 이 수식을 매매 시스템 어디에다 입력 적용할 줄을 몰라 다시좀 질문 드립니다. 좀 상세한 경로 답변좀 바랍니다.. 아래 내용은 답변내용 수식입니다..어느 경로에 어디에 입력하여 어떻게 사용되는지좀 부 부탁 드립니다. 안녕하세요 예스스탁입니다. MRS = (( RSD(today) /ma(RSD(today), n)) - 1 ) * 100 Where: RSD = ( close / close_index ) * 100 MA = Simple moving average over n days 해당 지표 계산식은 위와 같습니다. 계산식 내용은 간단합니다 2개종목의 비율과 해당 비율을 평균한값으로 mrs가 계산됩니다. 설명대로라면 해당 지표값을 보기위해서는 2개 데이타가 필요합니다. 특정종목과 해당 종목이 포함된 지수입니다. 기본차트에 특정종목, 참조데이타로 지수(해당종목이 포함된지수)를 추가하고 아래식 적용하시면 됩니다. 참조데이타는 차트왼쪽 상단의 종목선택 버튼 중 오른쪽 클릭하면 추가할 수 있습니다. input : N(20); var : RSD(0),MAV(0),MRS(0); RSD = Data1(c)/data2(c) * 100; mav = Data1(ma(RSD,N)); MRS = ((RSD /mav) - 1 ) * 100; Plot1(MRS); plot2(0); 즐거운 하루되세요
프로필 이미지
별빛달빛
2022-07-09
1509
글번호 160606
사용자 함수
답변완료

문의드립니다

안녕하세요 차트에 특정 보조지표를 나타낼떄 무조건 캔들이나 다른 보조지표보다 뒤에 오도록 맨뒤로 고정시키는 방법은 없을까요?
프로필 이미지
하누왕
2022-07-09
1677
글번호 160605
지표

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

프로필 이미지
요타
2022-07-09
8
글번호 160604
지표