커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다

안녕하세요? 아래수식에서 전환선과기준선도 선의 기울기에따라 색상을 넣고싶습니다 감사드립니다 Inputs: 전환선기간(9), 기준선기간(26), 스팬2기간(52); Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(High, 전환선기간) + Lowest(Low, 전환선기간)) / 2; 기준선 = (Highest(High, 기준선기간) + Lowest(Low, 기준선기간)) / 2; 후행스팬 = Close ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(High, 스팬2기간) + Lowest(Low, 스팬2기간)) / 2; Plot1(전환선, "전환선"); Plot2(기준선, "기준선"); Plot3(후행스팬, "후행스팬",iff(후행스팬>후행스팬[1],RED,BLUE)); Plot4(선행스팬1," 선행스팬1",iff(선행스팬1>선행스팬1[1],RED,BLUE)); Plot5(선행스팬2, "선행스팬2",iff(선행스팬2>선행스팬2[1],RED,BLUE));
프로필 이미지
새벽에
2022-03-10
1142
글번호 157052
지표
답변완료

수정 부탁드립니다

안녕하세요 아래의 수식을 수정 부탁드립니다. 수정사항은 파동선이 바뀔때 즉 파동선이 위로향하면 주황, 아래로 향하면 파랑 그리고 표현이 될지 모르나 아래에서 위로 , 위에서 아래로 바뀌기전의 중간상황은 녹색으로 표시를 하는데 챠트 하단에 막대 그래프로 표시하고 싶습니다. 글로 표현하자니 제대로 전달될는지 모르겠습니다 Input:length(12); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""), TL_Val1(0),TL_Val2(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetColor(TL1,WHITe); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2)); Text_SetStyle(Text1, 1, 1); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; TL_SetExtLeft(TL2,false); TL_SetExtRight(TL2,false); TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL2,BLUE); TL_SetExtLeft(TL2,true); TL_SetExtRight(TL2,true); } } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL1,blue); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2)); Text_SetStyle(Text1, 1, 0); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; TL_SetExtLeft(TL3,false); TL_SetExtRight(TL3,false); TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetColor(TL3,GREEn); TL_SetExtLeft(TL3,true); TL_SetExtRight(TL3,true); } } } TL_SetSize(TL1,0.5); TL_SetSize(TL2,0.5); TL_SetSize(TL3,0.5); TL_Val1 = 0; TL_Val2 = 0; If 고점[2,1] > 고점[1,1] and 고점[2,1] > 고점[3,1] Then { If 고점[1,2] < 저점[1,2] and 저점[3,1] < 저점[2,1] Then TL_Val1 = (저점[2,1]-저점[3,1])/(저점[2,2]-저점[3,2]) * (Index-저점[3,2])+저점[3,1]; If 저점[1,2] < 고점[1,2] and 저점[2,1] < 저점[1,1] Then TL_Val1 = (저점[1,1]-저점[2,1])/(저점[1,2]-저점[2,2]) * (Index-저점[2,2])+저점[2,1]; } If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] Then { If 저점[1,2] < 고점[1,2] and 고점[3,1] > 고점[2,1] Then TL_Val2 = (고점[2,1]-고점[3,1])/(고점[2,2]-고점[3,2]) * (Index-고점[3,2])+고점[3,1]; If 고점[1,2] < 저점[1,2] and 고점[2,1] > 고점[1,1] Then TL_Val2 = (고점[1,1]-고점[2,1])/(고점[1,2]-고점[2,2]) * (Index-고점[2,2])+고점[2,1]; }
프로필 이미지
라몬
2022-03-09
891
글번호 157051
지표
답변완료

지표식 요청 드립니다.(타주기)

* 항상 많은 도움에 고맙습니다. * 아래 수식을 120틱봉 에서 쓰고 있는데 타주기 240분봉 에서 신호가 나오면 선긋기 되도록 요청 드립니다. 즉 차트는 120봉 신호는 240봉에서 발생 하면 선긋기 입니다. ## 아래 수식 var: TL48(0); var1 = ma(c,5) ; Var2 = ma(c,20) ; if CrossDown(var1, Var2) Then { TL48 = TL_New(sdate,stime,9999999,sdate,stime,0); } * 매번 고맙습니다. 수고하십시요.
프로필 이미지
요타
2022-03-09
1047
글번호 157050
지표
답변완료

문의 드립니다

수고 많으십니다 첨부한 수식 중 매수신호봉 저가기준 손절 20틱(레드선), 익절50틱(블루선) 라인 매도신호봉 고가기준 손절20(레드선)틱, 익절50틱(블루선) 라인 부탁드립니다 감사합니다~ input : 전환선기간(9),기준선기간(26),선행스팬2기간(52),시작시간(080000),종료시간(220000); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0),구름상단(0),구름하단(0),Tcond(false); 전환선 = (Highest(H, 전환선기간) + Lowest(L, 전환선기간)) / 2; 기준선 = (Highest(H, 기준선기간) + Lowest(L, 기준선기간)) / 2; 선행스팬1 = (전환선[25] + 기준선[25]) / 2 ; 선행스팬2 = (Highest(H, 선행스팬2기간)[25] + Lowest(L, 선행스팬2기간)[25]) / 2; 구름상단 = max(선행스팬1,선행스팬2); 구름하단 = Min(선행스팬1,선행스팬2); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 종료시간) or (sdate == sdate[1] and stime >= 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; if MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if Tcond == true then{ if crossup(전환선,구름상단) Then buy(); if CrossDown(전환선,구름하단) Then sell(); } input : 틱(20); var : RR(0), TL(0),TX1(0),TX2(0); if MarketPosition == 1 Then { rr = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*틱)); if rr > rr[1] Then{ tx1 = Text_New(sdate,stime,H,NumToStr(RR*틱,0)+"틱"); Text_SetStyle(tx1,1,2); } TL_Delete(TL); TL_New(EntryDate,EntryTime,L[BarsSinceEntry],sdate,stime,L[BarsSinceEntry]); Text_Delete(Tx2); tx2 = Text_New(sdate,stime,L[BarsSinceEntry],NumToStr(L[BarsSinceEntry],2)); } if MarketPosition == -1 Then { rr = Floor((EntryPrice-lowest(L,BarsSinceEntry))/(PriceScale*틱)); if rr > rr[1] Then{ tx1 = Text_New(sdate,stime,H,NumToStr(RR*틱,0)+"틱"); Text_SetStyle(tx1,1,2); } TL_Delete(TL); TL_New(EntryDate,EntryTime,H[BarsSinceEntry],sdate,stime,H[BarsSinceEntry]); Text_Delete(Tx2); tx2 = Text_New(sdate,stime,H[BarsSinceEntry],NumToStr(H[BarsSinceEntry],2)); }
프로필 이미지
gopang
2022-03-09
1306
글번호 157049
시스템
답변완료

문의드립니다.

이평20 이평120 위의 있고 첫번째 음봉캔들 매수.두번째 음봉캔들 매수. 이평20 이평120 아래의 있고 첫번째 양봉캔들 매도. 두번째 양봉캔들 매도. 수고하세요.
프로필 이미지
아침
2022-03-09
1145
글번호 157048
시스템
답변완료

식첨부

input : n(1),x(50); input : StartTime(80000),EndTime(50000); Inputs : Period(20), Sence(1.5), CC_DN(Yellow); Input : 당일수익틱수(100),당일손실틱수(100); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Tcond(false); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](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); } } If STime == 180000 Then DBN = 0; DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H-L; JustChanged = FALSE; if CurrentBar <= Var2 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H-L) /2; end; if CurrentBar == Var1 then begin if Highs[Var2] >= Highs[Var3] then begin UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); #Plot1(VLineUp,"VLineUp"); end; if Highs[Var2] < Highs[Var3] then begin DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6,Var2)); #Plot2(VLineDn,"VLineDn"); end; end; if CurrentBar > Var1 then begin if DnWave[1] and Close > VLineDn then begin DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; end; if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; end; if JustChanged == FALSE then begin if Close > HHighest then HHighest = Close; else if Close < LLowest then LLowest = Close; end; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); VLineDn = LLowest + (Var5 * MA(Var6,Var2)); /*if UpWave[1] then Plot1(VLineUp,"VLineUp", Red); else if DnWave[1] then Plot1(VLineDn,"VLineUp", CC_DN); */ end; 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then Xcond = true; } if Tcond == true and Xcond == False Then { if CountIf(C>O,n) == n and H >= L[2]+PriceScale*x and UpWave[1] Then Buy(); if CountIf(C<O,n) == n and L <= H-PriceScale*x and DnWave[1] Then sell(); } if MarketPosition == 1 then{ ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); } if MarketPosition == -1 then{ ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); } 안녕하세요. 위식에서 수정부탁드려요 매수.매도시 다음신호 나올때까지 동일신호 중복 진입금지. 한신호에서 한번만 신호발생 되도록 해 주세요. 예:매수 신호 발생후 매도신호 나올때까지 한번만 신호발생 중복진임금지 매도시 매수신호 발생시까지 한번만 진입. 시작시간 수정시 오후22시면 어떻게 수정 하는지 여부 알려 주세요. 22000으로 수정하니까 적용이 안됨니다.
프로필 이미지
아트정
2022-03-09
1055
글번호 157047
시스템
답변완료

지표 수식 작성 부탁드립니다.

담당자님, 안녕하세요. 담당자님께서 작성해주신 지표를 활용하여 매매원칙을 연구하던 중 그 지표를 변형해서 기존 지표와 함께 병행해서 활용하려고 수정을 시도했으나 도저히 안되어 담당자님께 또 수식 작성을 부탁드리게 되었습니다. cf. 수식작성 Q&A 76295번의 질문과 담당자님께서 작성한 수식과 관련 있는 내용입니다. 다음과 같은 지표 수식의 작성을 부탁드립니다. ================================================================================ (KOSPI200 주가지수 선물의 분봉 차트에서 적용) 1) 매일 당일(D)의 장시작 후 부터 새로 연산을 실행하여 각 당일의 구간에만 표시 2) 전일(D-1) 일봉의 시가, 종가 전전일(D-2) 일봉의 시가, 종가 ...... (D-40) 일봉의 시가, 종가 cf. 시가, 종가가 각각 동등한 성격인 총 80개의 가격 변수(?)임.(시가, 종가의 성격에 따른 구분 없음) 3) 위 40일간 각 일봉 시가, 종가의 80개 가격(value) 중에서 (시가, 종가 구분 없이) 가격(value)이 '(당일 시가 - 5.0)~(당일 시가 + 5.0)'의 범위 내에 있으면서 and 그 가격(value)이 당일 시가와 가장 가까운 것을 5개 선정 4) 위에서 선정된 5개의 가격(value)을 당일(D)의 구간에만 수평라인으로 표시 (추가 요건) * 기존 지표와 같이 nth(5), N일(N=40), 당일 시가 범위(y=5.0) 수치는 외부입력 변수 ================================================================================= 위와 같이 지표 수식 작성을 부탁드립니다. 작성해 주신 지표를 다시 변형하여 요청해서 번거롭게 해드려 죄송하게 생각합니다. 이제 당분간 작성해 주신 지표들로 스스로 연구에 매진하겠습니다. 지표 작성에 대해 미리 감사드립니다. 항상 건강하고 건승 하시기 바랍니다 <참고> ================================================================= ================================================================= ================================================================= 아래는 수식작성 Q&A 76295번에 대한 답변으로 담당자님께서 작성해주신 지표수식입니다. ================================================================= 작성자 : 예스스탁 작성일 : 2022-03-08 오후 1:26:07 조회수 : 17 지표 Re : 지표 수식 작성 부탁드립니다. 안녕하세요 예스스탁입니다. input : N(40),nth(5),y(5); var : cnt(0),nthi(0); Var : tempmin(0), tempindex(0),NTHindex(0); Array : value[100](0),diff[100](0), NTHVALUE[6](0); if Bdate != Bdate[1] Then { For cnt = 1 to N { value[cnt] = (DayClose(cnt)+DayOpen(cnt))/2; diff[cnt] = abs(value[cnt]-DayOpen(0)); } For nthi = 1 to nth { tempMin = 99999999; tempIndex = -1; For cnt = 1 to N { if diff[cnt] < tempmin and diff[cnt] < y then { tempmin = diff[cnt]; tempIndex = cnt; } } if tempIndex != -1 Then { NTHVALUE[nthi] = value[tempIndex]; diff[tempIndex] = 99999999; } Else { NTHVALUE[nthi] = Nan; } } } plot1(NTHVALUE[1]); plot2(NTHVALUE[2]); plot3(NTHVALUE[3]); plot4(NTHVALUE[4]); plot5(NTHVALUE[5]); =====================================================
프로필 이미지
원칙투자자
2022-03-10
1068
글번호 157046
지표

아트정 님에 의해서 삭제되었습니다.

프로필 이미지
아트정
2022-03-09
37
글번호 157045
시스템

초보트레이더 님에 의해서 삭제되었습니다.

프로필 이미지
초보트레이더
2022-03-09
1
글번호 157043
시스템
답변완료

문의드립니다!

안녕하세요! 아래수식의 "타주기분(30)"으로 설정되어있는 부분과 관련해서... 이 30을 다른 수치로도 바꾸어서 한수식에서 동시에 여러개의 선이 표현되도록 추가하고싶습니다 예를들어 현재 설정된 30과 함께 40, 50, 60 등의 조건을 추가하여 <*한개의 수식>에서 각각의 조건에 맞는 선이 모두 나타나도록하고싶습니다 현재수식을 각각 다르게 설정하여 따로따로 적용하려니 너무많은 지표가 필요하게되네요 (* 제가 사용하는 챠트가 좀 많은편이라서 더욱더 그런거같습니다) * 위 예시대로 4개(30,40,50,60)의 조건을 적용할수있도록만 작성 부탁드립니다 매번 친절히 도와주심에 진심으로 감사드립니다!!! ----------------------------------------------------------------------------------- input : 타주기분(30),n(10),nth(5); var : S1(0),D1(0),TM(0),TF(0),cnt(0),OO(0),HH(0),LL(0),CC(0); var : ii(0),i1(0),i2(0),tempmax(0),tempi(0); Array : RR[200](0),MM[200](0),DI[50](0); Array : tempRR[200](0),tempMM[200](0),NTHVALUE[200](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { ii = ii+1; if Bdate != Bdate[1] Then { DI[0] = ii; for cnt = 1 to 49 { Di[cnt] = Di[cnt-1][1]; } } OO = O; HH = H; LL = L; RR[0] = 0; MM[0] = 0; for cnt = 1 to 199 { RR[cnt] = RR[cnt-1][1]; MM[cnt] = MM[cnt-1][1]; tempRR[cnt] = RR[cnt]; tempMM[cnt] = MM[cnt]; } } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; RR[0] = abs(OO-CC); MM[0] = (OO+CC)/2; tempRR[0] = RR[0]; tempMM[0] = MM[0]; if D1[n] > 0 Then { if Bdate != Bdate[1] Then { For i1 = 1 to nth { tempmax = -1; For i2 = 1 to ii-DI[n] { if (tempRR[i2] >= tempmax ) then { tempmax = tempRR[i2]; tempi = i2; } } NTHVALUE[i1] = tempMM[tempi]; tempRR[tempi] = -1; } } Plot1(NTHVALUE[1]); Plot2(NTHVALUE[2]); Plot3(NTHVALUE[3]); Plot4(NTHVALUE[4]); Plot5(NTHVALUE[5]); } }
프로필 이미지
유로파54
2022-03-09
828
글번호 157042
지표