커뮤니티
예스랭귀지 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 님에 의해서 삭제되었습니다.
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");
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