커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
8105
글번호 230811
지표
답변완료

중심선 지표식 2

항상 감사드립니다 아래조건의 지표식 부탁드립니다 1.당일 처음 중심선1,상단선1,하단선1은 중심선1 = (전일종가+전일저가)/2 (전일종가-전일저가) = T1(절대값) (전일고가-전일종가) = T2(절대값) T1 > T2 일때 a1=T1 T1 < T2 일때 a1=T2 상단선1= 중심선1+a1 하단선1= 중심선1-a1 상단선1-->청색 중심선1-->노란색 하단선1-->빨간색 /************************************************************/ 전봉고가 > = (상단선1+a1+a1) 조건만족시 전봉고가 = 상단선2 중심선2=(상단선2+하단선1)/2 (전봉고가-중심선2)=T3 (절대값) (중심선2 -하단선1)=T4 (절대값) T3 > T4 일때 T3 = a2 T3 < T4 일때 T4 = a2 상단선2= 중심선2+a2 하단선2= 중심선2-a2 /*******************************************************/ 전봉저가 = < (하단선1-a1-a1) 조건만족시 전봉저가 = 하단선2 중심선2=(상단선1+하단선2)/2 (중심선2-전봉저가)=T3 (절대값) (상단선1 -중심선2)=T4 (절대값) T3 > T4 일때 T3 = a2 T3 < T4 일때 T4 = a2 상단선2= 중심선2+a2 하단선2= 중심선2-a2 /*****************************************************/ 위와같은 조건이 계속변경될때마다 중심선및 상단선,하단선변경 2.전일저가,종가,고가를 수작업으로 입력할수 있도록 변형식 부탁드립니다. 감사합니다.
프로필 이미지
조민철
2018-06-06
335
글번호 119526
지표

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

프로필 이미지
yes
2018-06-06
5
글번호 119525
지표
답변완료

수식 부탁드립니다

패턴이 완성된후 그림과같이 피보나치 라인이 나타나게 수식부탁드립니다 Input:length(20),오차범위(0.382); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0), 처리구분(""),XA(0),AB(0),BC(0),CD(0),V1(0),V2(0),V3(0),V4(0),V5(0),Result(""); Array:고점[10,2](0),저점[10,2](0),TL[9](0),TX[6](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; XA = sqrt((고점[3,1]-저점[2,1])^2+(저점[2,2]-고점[3,2])^2); AB = sqrt((고점[2,1]-저점[2,1])^2+(고점[2,2]-저점[2,2])^2); BC = sqrt((고점[2,1]-저점[1,1])^2+(저점[1,2]-고점[2,2])^2); CD = sqrt((고점[1,1]-저점[1,1])^2+(고점[1,2]-저점[1,2])^2); V1 = AB/XA; V2 = BC/AB; V3 = CD/BC; V4 = CD/XA; Result = ""; If 고점[2,1] < 고점[1,1] and 고점[1,1] < 고점[3,1] and 저점[1,1] > 저점[2,1] Then { If condition1= V1 >= 0.618 - 오차범위 and V1 <= 0.618 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 1.13 - 오차범위 and V3 <= 1.618 + 오차범위 and V4 >= 0.786- 오차범위 and V4 <= 0.786 + 오차범위 Then Result = " Bearish Gartley "; Else If V1 >= 0.382 - 오차범위 and V1 <= 0.5 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 1.618 - 오차범위 and v3 <= 2.618 + 오차범위 and V4 >= 0.886 - 오차범위 and V4 <= 0.886 + 오차범위 Then Result = "Bearish Bat"; } Else If 고점[2,1] < 고점[1,1] and 고점[3,1] < 고점[1,1] and 저점[2,1] < 저점[1,1] Then { If V1 >= 0.382 - 오차범위 and V1 <= 0.618 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 2.618 - 오차범위 and V3 <= 3.618 + 오차범위 and V4 >= 1.618 - 오차범위 and V4 <= 1.618 + 오차범위 Then Result = "Bearish Crab"; Else If V1 >= 0.786 - 오차범위 and V1 <= 0.786 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 1.618 - 오차범위 and v3 <= 2.24 + 오차범위 and V4 >= 1.27 - 오차범위 and V4 <= 1.41 + 오차범위 Then Result = "Bearish Butterfly"; Else If V1 >= 0.886 - 오차범위 and V1 <= 0.886 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 2.0 - 오차범위 and V3 <= 3.618 + 오차범위 and V4 >= 1.618 - 오차범위 and V4 <= 1.618 + 오차범위 Then Result = "Bearish Deep Crab"; Else If V1 >= 0.382 - 오차범위 and V1 <= 0.382 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 2.0 - 오차범위 and V3 <= 3.168 + 오차범위 and V4 >= 1.13 - 오차범위 and V4 <= 1.13 + 오차범위 Then Result = "Bearish ALT BAT"; } Else If 고점[2,1] < 고점[3,1] and 고점[2,1] < 고점[1,1] and 고점[3,1] < 고점[1,1] and 저점[1,1] < 저점[2,1] Then { If V2 >= 1.13 - 오차범위 and V2 <= 1.618 + 오차범위 and V3 >= 1.618 - 오차범위 and V3 <= 2.24 + 오차범위 and V4 >= 0.886 - 오차범위 and V4 <= 1.13 + 오차범위 Then Result = "Bearish Shark"; } If Result != "" Then { TL_SetExtRight(TL[7],false); TL_SetExtRight(TL[8],false); sBar = Index - 고점[3,2]; eBar = Index - 저점[2,2]; If TL_GetBeginDate(TL[1]) == sDate[sBar] and TL_GetBeginTime(TL[1]) == sTime[sBar] Then { For j = 1 To 8 { TL_Delete(TL[j]); If j < 6 Then Text_Delete(TX[j]); } } TL[1] = TL_New(sDate[sBar],sTime[sBar],고점[3,1],sDate[eBar],sTime[eBar],저점[2,1]); sBar = Index - 저점[2,2]; eBar = Index - 고점[2,2]; TL[2] = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],고점[2,1]); sBar = Index - 고점[2,2]; eBar = Index - 저점[1,2]; TL[3] = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); sBar = Index - 저점[1,2]; eBar = Index - 고점[1,2]; TL[4] = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); sBar = Index - 고점[3,2]; eBar = Index - 고점[2,2]; TL[5] = TL_New(sDate[sBar],sTime[sBar],고점[3,1],sDate[eBar],sTime[eBar],고점[2,1]); sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; TL[6] = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); sBar = Index - 고점[3,2]; eBar = Index - 고점[1,2]; TL[7] = TL_New(sDate[sBar],sTime[sBar],고점[3,1],sDate[eBar],sTime[eBar],고점[1,1]); sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; TL[8] = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); sBar = Index - round((고점[3,2] + 고점[2,2])/2,0); TX[1] = Text_New(sDate[sBar],sTime[sBar],(고점[3,1]+고점[2,1])/2,NumToStr(V1,4)); sBar = Index - round((저점[2,2] + 저점[1,2])/2,0); TX[2] = Text_New(sDate[sBar],sTime[sBar],(저점[2,1]+저점[1,1])/2,NumToStr(V2,4)); sBar = Index - round((고점[2,2] + 고점[1,2])/2,0); TX[3] = Text_New(sDate[sBar],sTime[sBar],(고점[2,1]+고점[1,1])/2,NumToStr(V3,4)); sBar = Index - round((고점[3,2] + 고점[1,2])/2,0); TX[4] = Text_New(sDate[sBar],sTime[sBar],(고점[3,1]+고점[1,1])/2,NumToStr(V4,4)); sBar = Index - round((고점[3,2] + 고점[1,2])/2,0); TX[5] = Text_New(sDate[sBar],sTime[sBar],(고점[3,1]+고점[2,1])/2,Result); For j = 1 To 8 { TL_SetColor(TL[j],BLUE); } Text_SetStyle(TX[1],2,0); Text_SetStyle(TX[2],2,0); Text_SetStyle(TX[3],2,0); Text_SetStyle(TX[4],2,0); Text_SetStyle(TX[5],2,5); } } } 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; XA = sqrt((고점[2,1]-저점[3,1])^2+(고점[2,2]-저점[3,2])^2); AB = sqrt((고점[2,1]-저점[2,1])^2+(저점[2,2]-고점[2,2])^2); BC = sqrt((고점[1,1]-저점[2,1])^2+(고점[1,2]-저점[2,2])^2); CD = sqrt((고점[1,1]-저점[1,1])^2+(저점[1,2]-고점[1,2])^2); V1 = AB/XA; V2 = BC/AB; V3 = CD/BC; V4 = CD/XA; Result = ""; If 저점[3,1] < 저점[1,1] and 저점[1,1] < 저점[2,1] and 고점[1,1] < 고점[2,1] Then { If V1 >= 0.618 - 오차범위 and V1 <= 0.618 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 1.13 - 오차범위 and V3 <= 1.618 + 오차범위 and V4 >= 0.786 - 오차범위 and V4 <= 0.786 + 오차범위 Then Result = "Bullish Gartley"; Else If 저점[3,1] < 저점[1,1] and 저점[1,1] < 저점[2,1] and 고점[1,1] < 고점[2,1] Then { If V1 >= 0.382 - 오차범위 and V1 <= 0.5 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 1.618 - 오차범위 and v3 <= 2.618 + 오차범위 and V4 >= 0.886 - 오차범위 and V4 <= 0.886 + 오차범위 Then Result = "Bullish Bat"; } Else If 저점[1,1] < 저점[3,1] and 저점[3,1] < 저점[2,1] and 고점[1,1] < 고점[2,1] Then { If V1 >= 0.382 - 오차범위 and V1 <= 0.618 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 2.618 - 오차범위 and V3 <= 3.618 + 오차범위 and V4 >= 1.618 - 오차범위 and V4 <= 1.618 + 오차범위 Then Result = "Bullish Crab"; Else If V1 >= 0.786 - 오차범위 and V1 <= 0.786 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 1.618 - 오차범위 and v3 <= 2.24 + 오차범위 and V4 >= 1.27 - 오차범위 and V4 <= 1.41 + 오차범위 Then Result = "Bullish Butterfly"; Else If V1 >= 0.886 - 오차범위 and V1 <= 0.886 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 2.0 - 오차범위 and V3 <= 3.618 + 오차범위 and V4 >= 1.618 - 오차범위 and V4 <= 1.618 + 오차범위 Then Result = "Bullish Deep Crab"; Else If V1 >= 0.382 - 오차범위 and V1 <= 0.382 + 오차범위 and V2 >= 0.382 - 오차범위 and V2 <= 0.886 + 오차범위 and V3 >= 2.0 - 오차범위 and V3 <= 3.168 + 오차범위 and V4 >= 1.13 - 오차범위 and V4 <= 1.13 + 오차범위 Then Result = "Bullish ALT BAT"; } Else If 저점[1,1] < 저점[2,1] and 저점[3,1] < 저점[2,1] and 고점[2,1] < 고점[1,1] Then { If V2 >= 1.13 - 오차범위 and V2 <= 1.618 + 오차범위 and V3 >= 1.618 - 오차범위 and V3 <= 2.24 + 오차범위 and V4 >= 0.886 - 오차범위 and V4 <= 1.13 + 오차범위 Then Result = "Bullish Shark"; } If Result != "" Then { TL_SetExtRight(TL[7],false); TL_SetExtRight(TL[8],false); sBar = Index - 저점[3,2]; eBar = Index - 고점[2,2]; If TL_GetBeginDate(TL[1]) == sDate[sBar] and TL_GetBeginTime(TL[1]) == sTime[sBar] Then { For j = 1 To 8 { TL_Delete(TL[j]); If j < 6 Then Text_Delete(TX[j]); } } TL[1] = TL_New(sDate[sBar],sTime[sBar],저점[3,1],sDate[eBar],sTime[eBar],고점[2,1]); sBar = Index - 고점[2,2]; eBar = Index - 저점[2,2]; TL[2] = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],저점[2,1]); sBar = Index - 저점[2,2]; eBar = Index - 고점[1,2]; TL[3] = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); sBar = Index - 고점[1,2]; eBar = Index - 저점[1,2]; TL[4] = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); sBar = Index - 저점[3,2]; eBar = Index - 저점[2,2]; TL[5] = TL_New(sDate[sBar],sTime[sBar],저점[3,1],sDate[eBar],sTime[eBar],저점[2,1]); sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; TL[6] = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]); sBar = Index - 저점[3,2]; eBar = Index - 저점[1,2]; TL[7] = TL_New(sDate[sBar],sTime[sBar],저점[3,1],sDate[eBar],sTime[eBar],저점[1,1]); sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; TL[8] = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]); sBar = Index - round((저점[3,2] + 저점[2,2])/2,0); TX[1] = Text_New(sDate[sBar],sTime[sBar],(저점[3,1]+저점[2,1])/2,NumToStr(V1,4)); sBar = Index - round((고점[2,2] + 고점[1,2])/2,0); TX[2] = Text_New(sDate[sBar],sTime[sBar],(고점[2,1]+고점[1,1])/2,NumToStr(V2,4)); sBar = Index - round((저점[2,2] + 저점[1,2])/2,0); TX[3] = Text_New(sDate[sBar],sTime[sBar],(저점[2,1]+저점[1,1])/2,NumToStr(V3,4)); sBar = Index - round((저점[3,2] + 저점[1,2])/2,0); TX[4] = Text_New(sDate[sBar],sTime[sBar],(저점[3,1]+저점[1,1])/2,NumToStr(V4,4)); sBar = Index - round((저점[3,2] + 저점[1,2])/2,0); TX[5] = Text_New(sDate[sBar],sTime[sBar],(저점[3,1]+저점[2,1])/2,Result); For j = 1 To 8 { TL_SetColor(TL[j],RED); } Text_SetStyle(TX[1],2,0); Text_SetStyle(TX[2],2,0); Text_SetStyle(TX[3],2,0); Text_SetStyle(TX[4],2,0); Text_SetStyle(TX[5],2,5); } } } For j = 1 To 4 { TL_SetSize(TL[j],1); } For j = 5 To 8 { TL_SetSize(TL[j],1); TL_SetColor(TL[j],GREEN); TL_SetExtRight(TL[7],True); TL_SetExtRight(TL[8],True); }}
프로필 이미지
수색대대
2018-06-06
601
글번호 119524
지표
답변완료

문의드립니다.

수고하십니다. 예전에 검색식 만들어주셔서 잘 쓰고 있습니다. 찾아진 갭의 상단과 갭의 하단을 분할매수하고 매수된 단가의 5%,10% 지정가 익절매도하는 시스템식을 부탁드립니다. (매수가 안된 매수주문과 매도가 안된 매도주문은 익일부터 지속적으로 주문이 나가게 하고 싶습니다.) input : NN(10),AA(10),BB(5); if min(C,O) >= C[1]*(1+AA/100) Then { var1 = min(C,O); var2 = h; var3 = index; Condition1 = false; } if H > var2 Then var2 = h; if index > var3 and L <= var1*(1+BB/100) then Condition1 = true; if var3 > 0 and index > var3 and index <= var3+nn and Condition1 == false Then find(1);
프로필 이미지
여세우
2018-06-06
307
글번호 119523
시스템
답변완료

수식 부탁드립니다.

스톡게스틱 slow(20,10,4)와 볼린저밴드(10,2)를 셋팅하고 스톡게스틱이과열권 80이상에서 볼린저를 교차 하락시매도진입 ,스톡게스틱이침체권 20이하에서 볼린저를 교차 상승시 매수진입하게 해주세요, 감사합니다.
프로필 이미지
비슬짱
2018-06-06
303
글번호 119522
시스템
답변완료

수식문의

안녕하세요 하기 수식에서 한가지 추가사항을 하고 싶어서 메일드립니다. 검토 부탁드립니다. 하기수식에서 매도 진입시 ADX 선 위에 - DI 선이 있으면 진입대기후 - DI 선이 ADX 아래로 내려온 후에 진입하게 부탁드립니다. 하기 수식에서 매수 진입시 ADX 선 위에 + DI 선이 있으면 진입대기후 + DI 선이 ADX 아래로 내려온 후에 진입하게 부탁드립니다. 감사합니다. input : Period(20),dv(2); var : BBmd1(0,data1),BBdn1(0,data1),bbup1(0,data1); var : BandB1(0,data1),HH1(0,data1),LL1(0,data1); var : BBmd2(0,data2),BBdn2(0,data2),bbup2(0,data2); var : T(0,data1); BBmd1 = data1(ma(C,Period)); BBdn1 = data1(BollBandDown(Period,Dv)); BBUp1 = data1(BollBandUp(Period,Dv)); BandB1 = data1(((C-BBDn1)/(BBUp1-BBdn1))*100); BBmd2 = data2(ma(C,Period)); BBdn2 = data2(BollBandDown(Period,Dv)); BBUp2 = data2(BollBandUp(Period,Dv)); if crossup(BandB1,90) Then HH1 = BandB1; if BandB1 > 90 and BandB1 > HH1 Then HH1 = BandB1; if CrossDown(BandB1,10) Then LL1 = BandB1; if BandB1 < 10 and BandB1 < LL1 Then LL1 = BandB1; if CrossDown(BandB1,90) Then { T = 0; if HH1 > 100 Then T = -1; if BBup2 < BBup1 then T = -2; } if CrossUp(BandB1,10) Then { T = 0; if HH1 < 0 Then T = 1; if BBdn2 > BBdn1 then T = 2; } if T == -1 and BBup2 < BBup1 then T = -2; if T == 1 and BBdn2 > BBdn1 then T = 2; if T == -2 and T != T[1] Then { T = 0; sell("s4"); } if T == 2 and T != T[1] Then { T = 0; buy("b4");
프로필 이미지
softtoug
2018-06-06
303
글번호 119521
시스템
답변완료

식 부탁드립니다~

var : scnt7(0), T7(0), Bcnt7(0); if crossup(tic120,tic240) Then{ T7 = 1; Bcnt7 = 0; Scnt7 = 0; if MarketPosition == 1 Then Bcnt7 = 1; } if crossdown(tic120,tic240) Then{ T7 = -1; Scnt7 = 0; Bcnt7 = 0; if MarketPosition == -1 Then Scnt7 = 1; } if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then Bcnt7 = Bcnt7+1; if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then Scnt7 = Scnt7+1; /// 120일선과 240일선이 크로스되면 Bcnt7가 1씩 증가하는 식인데요 120일선과 240일선이 골든크로스되고나서 청산신호명이 "롱익절"가 뜨게 되면은 다시120일선과 240일선이 데드크로스되거나 또다시 120일선과 240일선이 새로운 골든크로스가 나오기전까지 신규진입신호가 생성되지 않도록 하고 싶습니다. ~ 반대도 마찬가지이구요~ 현재120과 240일선 골든크로스 이후에7회까지 진입신호가 나오도록 해놓은 상황입니다.
프로필 이미지
겐지
2018-06-06
268
글번호 119520
시스템
답변완료

수식 수정좀 부탁드립니다.

아래 수식을 작성해주셨는데요. 제가 의도하는 진입 조건은 1. 아래 13가지의 선을 기준으로 이평선이 상하 2틱이내에 있을 것 2. 캔들의 저가가 위 1번의 범위내에 도달하면 매수진입 캔들의 고가가 위 1번의 범위내에 도달하면 매도진입 그런데, 위 1번의 조건에서 13가지 선의 상하 2틱이내 60, 120, 180 이평선이 있는 경우에만 진입해야 하는데 이평선은 도달하지 않고 2번 조건의 캔들의 저가가 선을 기준으로 상하 2틱 이내 도달하면 매수진입하고 역시 이평은 도달하지 않은 상태에서 캔들의 고가가 기준선 상하 2틱 이내에 도달하면 매도진입합니다. 또, 13가지 선과는 관계없이 2번 조건 하나만 만족해도 진입을 합니다. 다시한번 살펴봐주시면 고맙겠습니다. var : OO(0),HH(0),LL(0),CC(0),OO1(0),HH1(0),LL1(0),CC1(0); var : mav1(0),mav2(0),mav3(0),maxv(0),minv(0),cnt(0); Array : line[14](0); if Bdate != Bdate[1] Then{ OO = O; HH = H; LL = L; OO1 = OO[1]; HH1 = HH[1]; LL1 = LL[1]; CC1 = CC[1]; } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; var1 = dayhigh(0); var2 = daylow(0); var3 = var1-var2; line[1] = var1; line[2] = var2; line[3] = var1-var3*0.236; line[4] = var1-var3*0.382; line[5] = var1-var3*0.500; line[6] = var1-var3*0.618; line[7] = var1-var3*0.764; line[8] = var1+var3*0.236; line[9] = var1+var3*0.382; line[10] = var1+var3*0.618; line[11] = var2-var3*0.236; line[12] = var2-var3*0.382; line[13] = var2-var3*0.618; mav1 = ma(C,60); mav2 = ma(C,120); mav3 = ma(C,180); value1 = 0; for cnt = 1 to 13 { if mav1 <= Line[cnt]+PriceScale*2 and mav1 >= line[cnt]-PriceScale*2 Then value1 = line[cnt]; if mav2 <= Line[cnt]+PriceScale*2 and mav2 >= line[cnt]-PriceScale*2 Then value1 = line[cnt]; if mav3 <= Line[cnt]+PriceScale*2 and mav3 >= line[cnt]-PriceScale*2 Then value1 = line[cnt]; } if value1 > 0 then { if crossup(H,value1) Then sell(); if CrossDown(L,value1) Then buy(); }
프로필 이미지
천왕봉
2018-06-06
309
글번호 119519
시스템
답변완료

마틴게일 솔루션을 수식으로 만들고 싶습니다

상승신호 솔루션과 하락신호 솔루션을 따로 적용할예정으로 아래 수식이 두가지로 따로 적용시킬 예정입니다. [상승신호] 특정가격에 도달하면(변수) 1랏 매수 진입 이후 50틱 올라가면 매도 청산 (여기서 50틱은 변수값) 반대로 50틱 내려가면 매도청산이후 2랏 재매수, 이후 50틱 올라오면 2랏 매도청산하고, 1랏 매수 처음부터 시작 만약 50틱 더 내려가면 매도청산이후 4랏 재매수, 이후 50틱 올라오면 4랏 매도청산, 1랏 매수 처음부터 시작 만약 50틱 더 내려가면 매도청산이후 8랏 재매수, 이후 50틱 올라오면 8랏 매도청산, 1랏 매수 처음부터 시작 이런식으로 50틱 올라오면 수익청산하고 처음부터 다시 시작, 반대로 가면 청산이후 두배씩 매수 진입입니다. 위와같은 상승 시스템 하나와 [하락신호] 특정가격에 도달하면(변수) 1랏 매도 진입 이후 50틱 내려가면 매수 청산 (여기서 50틱은 변수값) 반대로 50틱 올려가면 매수청산이후 2랏 재매도, 이후 50틱 내려오면 2랏 매수청산하고, 1랏 매도 처음부터 시작 만약 50틱 더 올라가면 매수청산이후 4랏 재매도, 이후 50틱 내려오면 4랏 매수청산, 1랏 매도 처음부터 시작 만약 50틱 더 올라가면 매수청산이후 8랏 재매도, 이후 50틱 내려오면 8랏 매수청산, 1랏 매도 처음부터 시작 이런식으로 50틱 내려가면 수익청산하고 처음부터 다시 시작, 반대로 가면 청산이후 두배씩 재매도 진입입니다. 이렇게 하락 시스템 하나 둘다 마틴게일 로 자동매매되는 솔루션입니다. 수식부탁드립니다 감사합니다
프로필 이미지
열라빠른거북이
2018-06-05
330
글번호 119518
시스템