커뮤니티

예스랭귀지 Q&A

글쓰기

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

프로필 이미지
hakona
2022-05-23
115
글번호 159137
지표
답변완료

여쭤볼게 있습니다.

안녕하세요 여쭤볼것은 다름이 아니라 볼린져밴드 3개 (예를들면 볼밴 20,40,60) 를 각자의 볼밴으로 챠트에 구현하는것이 아닌 3개의 볼밴을 하나의 수식에 의해 표현이 가능한지요? 만약 가능하다면 수식 부탁 드립니다. 고맙습니다.
프로필 이미지
라몬
2022-05-22
789
글번호 159136
지표
답변완료

문의드립니다.

항상 감사드립니다. [ 3202 : 파워종목검색 부분 문의건 ] ① 장기(지수)이평선 60일 + 120일 + 240일 이평선을 주가가 동시에 돌파하거나 혹은 그이상이어야한다 ② Envelope(20,10) 주가가 상한선 돌파 ③ Bollinger band(20,2) 주가가 상한선 돌파 상기 ( ① and ② and ③ ) 조건을 동시에 만족하는 조건으로 종목검색식 문의드립니다.
프로필 이미지
관스
2022-05-22
933
글번호 159135
종목검색

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

프로필 이미지
hakona
2022-05-22
142
글번호 159134
시스템
답변완료

수식문의드립니다

안녕하세요~ 수식에서 해결안되는 부분이 있어 질문드립니다 (수식은 하단 첨부) 첨부한 수식과 같이 9개 선에서의 매수, 매도를 감시하도록 셋팅해놓고 가격이 제일위, 제일아래 선을 돌파하면 9개 선을 상/하향 조정해 감시하도록 만들었습니다 수식상 처음에 설정한 LL[5] 값이 11953이었고, 이때의 LL[9] == 11713이었습니다 첨부한 사진상의 세로선으로 표시한 01:08에 가격이 11713을 crossdown해 수식대로 LL[5] == 11713을 바뀌고, 다른 선들도 다시 셋팅되었습니다 그런데 01:09의 봉에서 갑자기 BC1[5], BC1[6], BC2[6]이 TRUE로 바뀌었고 (이전엔 전부 FALSE) LL[6]에서 매수가 체결되었습니다 BC1[5]는 LL[6]을 crossup 할때 BC1[6]은 LL[7]을 crossup 할때 BC2[6]은 BC1[6] == true 이면서 LL[5]를 crossup 할때 발생하는데, 첨부한 사진에도 보이듯 이런 이벤트가 발생한적이 없습니다 정리하면 01:08 => LL[5] = LL[9]로 업데이트 & BC1[5], BC1[6], BC2[6] 모두 false 01:09 => BC1[5], BC1[6], BC2[6] 모두 true로 바뀜 01:10 => b06 체결 이렇게 되었는데 원인을 찾지 못하겠습니다 한번 살펴봐주시면 감사하겠습니다 ----------------------------------------------------------- input : Distance(60), TM(11200), TT(10000); var : i(0); array : LL[9](11953), BC1[9](False), BC2[9](false), SC1[9](False), SC2[9](False); if TM > sTime && sTime > TT Then { MessageLog("L2-1 %.2f, L3-1 %.2f, L4-1 %.2f, L5-1 %.2f, L9-1 %.2f", LL[2] , LL[3], LL[4], LL[5], LL[9]); MessageLog("SC1[1] %s, SC1[2] %s, SC1[3] %s, SC1[4] %s, SC1[5] %s, SC1[6] %s, SC1[7] %s, SC1[8] %S, SC1[9] %s", SC1[1], SC1[2], SC1[3], SC1[4], SC1[5], SC1[6], SC1[7], SC1[8], SC1[9]); MessageLog("SC2[1] %s, SC2[2] %s, SC2[3] %s, SC2[4] %s, SC2[5] %s, SC2[6] %s, SC2[7] %s, SC2[8] %S, SC2[9] %s", SC2[1], SC2[2], SC2[3], SC2[4], SC2[5], SC2[6], SC2[7], SC2[8], SC2[9]); MessageLog("BC1[1] %s, BC1[2] %s, BC1[3] %s, BC1[4] %s, BC1[5] %s, BC1[6] %s, BC1[7] %s, BC1[8] %S, BC1[9] %s", BC1[1], BC1[2], BC1[3], BC1[4], BC1[5], BC1[6], BC1[7], BC1[8], BC1[9]); MessageLog("BC2[1] %s, BC2[2] %s, BC2[3] %s, BC2[4] %s, BC2[5] %s, BC2[6] %s, BC2[7] %s, BC2[8] %S, BC2[9] %s", BC2[1], BC2[2], BC2[3], BC2[4], BC2[5], BC2[6], BC2[7], BC2[8], BC2[9]); MessageLog("SC1 %s, SC2 %s, BC1 %s, BC2 %s, p %.2f", SC1[3], SC2[3], BC1[5], BC2[5], MarketPosition); if H > LL[1] Then { LL[5] = LL[1]; } if L < LL[9] Then { LL[5] = LL[9]; } For i = 0 to 4 {LL[4-i] = LL[5-i] + distance;} For i = 5 to 9 {LL[i+1] = LL[i] - distance;} MessageLog("L2-2 %.2f, L3-2 %.2f, L4-2 %.2f, L5-2 %.2f, L9-2 %.2f", LL[2] , LL[3], LL[4], LL[5], LL[9]); MessageLog("SC1[1] %s, SC1[2] %s, SC1[3] %s, SC1[4] %s, SC1[5] %s, SC1[6] %s, SC1[7] %s, SC1[8] %S, SC1[9] %s", SC1[1], SC1[2], SC1[3], SC1[4], SC1[5], SC1[6], SC1[7], SC1[8], SC1[9]); MessageLog("SC2[1] %s, SC2[2] %s, SC2[3] %s, SC2[4] %s, SC2[5] %s, SC2[6] %s, SC2[7] %s, SC2[8] %S, SC2[9] %s", SC2[1], SC2[2], SC2[3], SC2[4], SC2[5], SC2[6], SC2[7], SC2[8], SC2[9]); MessageLog("BC1[1] %s, BC1[2] %s, BC1[3] %s, BC1[4] %s, BC1[5] %s, BC1[6] %s, BC1[7] %s, BC1[8] %S, BC1[9] %s", BC1[1], BC1[2], BC1[3], BC1[4], BC1[5], BC1[6], BC1[7], BC1[8], BC1[9]); MessageLog("BC2[1] %s, BC2[2] %s, BC2[3] %s, BC2[4] %s, BC2[5] %s, BC2[6] %s, BC2[7] %s, BC2[8] %S, BC2[9] %s", BC2[1], BC2[2], BC2[3], BC2[4], BC2[5], BC2[6], BC2[7], BC2[8], BC2[9]); MessageLog("SC1 %s, SC2 %s, BC1 %s, BC2 %s, p %.2f", SC1[3], SC2[3], BC1[5], BC2[5], MarketPosition); For i = 1 to 1 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b01", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2)Then { ExitLong("exitL01-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL01-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s01", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS1-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS1-2", AtStop, LL[i-1]); } } For i = 2 to 2 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b02", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL2-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL2-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s02", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS2-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS2-2", AtStop, LL[i-1]); } } For i = 3 to 3 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b03", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL3-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL3-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s03", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS3-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS3-2", AtStop, LL[i-1]); } } For i = 4 to 4 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i]) && H[1] > LL[i] && BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b04", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL4-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL4-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s04", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS4-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS4-2", AtStop, LL[i-1]); } } For i = 5 to 5 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) or CrossDown(C, LL[i+2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b05", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL05-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL05-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s05", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS5-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS5-2", AtStop, LL[i-1]); } } For i = 6 to 6 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b06", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL06-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL06-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s06", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS6-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS6-2", AtStop, LL[i-1]); } } For i = 7 to 7 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b07", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL07-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL07-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s07", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS7-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS7-2", AtStop, LL[i-1]); } } For i = 8 to 8 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b08", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL08-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL08-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) or CrossDown(L, LL[i+2]) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s08", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS8-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS8-2", AtStop, LL[i-1]); } } For i = 9 to 9 { if CrossUp(H, LL[i+1]) Then BC1[i] = true; if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true; if CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true Then { BC1[i] = False; BC2[i] = False; } if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b09", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitLong("exitL09-1", AtLimit, (LL[i]+LL[i-1])/2); ExitLong("exitL09-2", AtStop, LL[i+1]); } if CrossDown(L, LL[i-1]) Then SC1[i] = true; if SC1[i] == true && CrossDown(L, LL[i+1]) Then SC2[i] = true; if (CrossUp(H, LL[i])&& SC1[i] == true && SC2[i] == true) Then { SC1[i] = False; SC2[i] = False; } if MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s09", AtLimit, LL[i]); if (EntryPrice <= (LL[i]+LL[i-1])/2 && EntryPrice >= (LL[i]+LL[i+1])/2) Then { ExitShort("exitS9-1", AtLimit, (LL[i]+LL[i+1])/2); ExitShort("exitS9-2", AtStop, LL[i-1]); } } }
프로필 이미지
jshwang2
2022-05-22
1073
글번호 159133
시스템
답변완료

문의

20일 이평선 기울기 문의드려요 예전 다른 분 문의와 답변 참고해서 추가로 문의합니다 20일 이평선의 값이 5분전, 10분전, 15분전 보다 연속으로 크다면 매수. 이렇게 변형이 가능한지요? if 20일 이평선값 > 5분전 20일 이평선값 > 10분전 이평선값 > 15분전 이평선값 then buy ------------------------------ 예전 게시판 질문: 20일 지수 이동평균선이 음의 기울기 이면 다음봉에서 매도, 양의 기울기면 다음봉에 매수 . 예스스탁 답변 안녕하세요 예스스탁입니다. input : P(20); var1 = ema(c,P); if var1 > var1[1] Then buy("b",AtMarket); ------------------------------------
프로필 이미지
검은약
2022-05-22
1060
글번호 159132
지표
답변완료

굵게 요청 드립니다.

* 항상 많은 도움 고맙습니다. <질문1> 아래 수식 굵게 표현좀 부탁 드립니다. 즉 상향 이면 RED에 굵기3 하향이면 BLUE에 굵기3 입니다. input : 간격(5); if SwingHigh(1,H,간격,간격,간격*2+1) != -1 Then plot1(H[간격]); if SwingLow(1,L,간격,간격,간격*2+1) != -1 Then plot1(L[간격]); <질문2> 하나의 로직에 두개를 다 표시 할수 있나요? 가격과 점 TX = Text_New(sdate[간격],stime[간격],HH1,NumToStr(HH1,2)); TX = Text_New(sdate[간격],stime[간격],HH1,"●"); 아래 처럼 하니까 안되네요? TX = Text_New(sdate[간격],stime[간격],HH1,NumToStr(HH1,2),"●"); <질문3> #추세선을 차트 마지막봉까지 확장 아니고 #추세선을 10개봉까지 표현좀 부탁 드립니다. TL_SetExtRight(HTL[0],true); * 늘 고맙습니다 수고하십시요.
프로필 이미지
요타
2022-05-23
1212
글번호 159131
지표
답변완료

문의드립니다

1. 20이평선, 33이평선, 60이평선이 모두 상향추세로 전환할 때의 매수신호수식. 각각의 이평선이 하향추세이다가 상향추세로 전환하는 시기가 다를 수밖에 없는데 모두 상향추세로 전환될때에만 매수신호가 나오게 하는 수식이되 최근 20봉중에 처음 만족하는 경우에만 신호가 나오야 합니다. 2. 조건만족하는 신호수식 A가 검색될때에 추가조건으로서 종가가 기준(240이평선)위에 있는 경우에는 최근 20봉중 최근 20봉중 최저가가 5봉이내에 있어야 한다는 조건을 만족해야하고, 기준선 아래에 종가가 있는 경우에는 최근 20봉중 최저가가 5봉이내에 있어야 한다는 조건을 만족하지 않아도 된다는 수식을 만들어 주세요
프로필 이미지
해피오
2022-05-22
1303
글번호 159130
검색
답변완료

문의드립니다.

시작시간 15시 30분. 끝나는 시간 05시 50분. 진입한 수량이 있다면 모두청산후 시스템종료. 이평 4 위의 이평 3 이 있고 또는 이평 2 가 있고 이평 1 이 이평 2 하향돌파 첫번째매수. 이평 3 하향돌파 두번째매수. 이평 4 하향돌파 세번째 매수. 이평 4 아래의 이평 3 이 있고 또는 이평 2 가 있고 이평 1 이 이평 2 상향돌파 첫번째 매도. 이평 3 상향돌파 두번째 매도. 이평 4 상향돌파 세번째매도. 익절400틱. 수고하세요.
프로필 이미지
아침
2022-05-22
1126
글번호 159129
시스템
답변완료

문의드립니다.

시작시간 15시 30분. 끝나는 시간 05시 50분. 진입한 수량이 있다면 모두 청산후 시스템종료. 이평 1 이 이평 2 위의 있고 알에스아이 55 하향돌파 첫번째 매수. 50하향돌파 두번째 매수. 45하향돌파 세번째 매수. 이평 1이 이평 2 아래의 있고 알에스아이 45 상향돌파 첫번째 매도. 50상향돌파 두번째 매도. 55상향돌파 세번째 매도. 익절 400틱. 수고하세요.
프로필 이미지
아침
2022-05-22
1297
글번호 159128
시스템