커뮤니티

질문 있습니다.

프로필 이미지
스오어스
2025-10-30 09:11:45
76
글번호 227476
답변완료

image.png
안녕하세요.
저번에 도와주셔서 너무 감사했습니다.
첨부한 이미지를 보면
파동같은 모습인데요
이런 시스템이 가능한지 궁금하고 코드 만들 수 있는지 어쭤 봅니다.
C이 A보다 넘고있으면 B와C에 피보나치 선이 나오게 하고 피보 50% 선 종가가 터치하고 다시 50% 위로 올라서 종가로 끝나면 매수진입 D가 B선 깨지지 않으면 홀딩하고 C에 도달하면 청산합니다.
이 기본 시스템 코드를 만들어 주시면 제가 응용해서 만들어 보겠습니다.
감사합니다.

지그재그파동선
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-30 14:12:16

안녕하세요 예스스탁입니다. 문의하신 내용에서 가장 중요한 부분은 파동선 혹은 지그재그선입니다. 해당 부분에 대해서는 별도의 설명이 없어 임의로 지그재그선으로 처리해 드립니다. 참고하셔서 수정보완해 사용하시기 바랍니다. input : 최고최저봉수(20); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),ZigZagTL(0),TX(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0); HPrice = H; LPrice = L; if Index == 0 Then { //초기 최고값 HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; //초기 최저값 LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; } Else { //상승변환조건 UpTrend = HPrice >= highest(HPrice,최고최저봉수)[1]; //하락변환조건 DownTrend = LPrice <= Lowest(LPrice,최고최저봉수)[1]; //상승추세전환 if trend <= 0 and UpTrend == true Then { trend = 1; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); TL_SetColor(ZigZagTL,Red); TL_SetSize(ZigZagTL,1); TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0],2)); Text_SetStyle(TX,2,1); Text_SetColor(TX,Red); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); TL_SetColor(ZigZagTL,Blue); TL_SetSize(ZigZagTL,1); TX = text_new(LD[0],LT[0],LV[0],NumToStr(LV[0],2)); Text_SetStyle(TX,2,0); Text_SetColor(TX,Blue); } Else { if trend == 1 Then { if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0],2)); } } if trend == -1 Then { if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(LV[0],2)); } } } } if MarketPosition <= 0 and HV[0] > HV[1] and ((Trend == 1 and CrossUp(C,HV[0]-(HV[0]-LV[0])*0.5)) or (Trend == -1 and CrossUp(C,HV[0]-(HV[0]-LV[1])*0.5))) Then Buy(); if MarketPosition == 1 and trend == 1 and LV[0] > LV[1] and CrossUp(C,HV[1]) Then ExitLong(); 즐거운 하루되세요