커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5503
글번호 230811
답변완료
안녕하세요 질문드립니다.
안녕하세요 시스템에서 "매도"부분만 약간 수정하고 싶어서 글남깁니다
아래는 제가 사용하는 시스템인데요
#A진입은 제외하고
#"B진입 1~6부분"만 수정하고싶습니다
각 진입마다 매도식은
1매도는 매수가 대비 12프로상승시 매도
2매도는 매수가 대비 1프로상승 후 7프로 하락시 매도
3매도는 매수가 대비 6프로 하락시 매도
이렇게 3개로 똑같습니다.
여기서 3매도 부분만 C[4]부분을 참고하고 싶은데요
"6프로 하락시 매도"가아닌 "C[4] 대비 1프로 하락"시 매도로 식좀 수정해주시면 고맙겠습니다.
var : VV(0);
var : A1(False),A2(False),A3(False),A4(False),A5(False),A6(False),A7(False),A8(False),A9(False),A10(False),A11(False),A12(False),A13(False),A14(False),A15(False);
var : B1(False),B2(False),B3(False),B4(False),B5(False),B6(False),B7(False),B8(False),B9(False),B10(False),B11(False);
VV = AccumN(DownVol,1)[1]/AccumN(Volume,1)[1];
A1 = C[4]<Lowest(L,2)[1];
A2 = Highest(H,2)[2] >= C[4]*1.06;
A3 = Accumn(H-O,1)[3] > Accumn(H-O,1)[2];
A4 = Highest(H,2)[2] > Highest(H,1)[1];
A5 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.25 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.30;
A6 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.20 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.25;
A7 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.15 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.20;
A8 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.10 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.15;
A9 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.05 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.10;
A10 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.01 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.05;
A11 = AccumN(V,1)[2] > AccumN(V,1)[1] and AccumN(V,1)[2] > AccumN(V,1)[3]*0.1;
A12 = C[1] <= C[2]*1.01 and C[1] >= C[2]*0.99;
A13 = 0.60 >= VV and VV >= 0.40;
A14 = (Accumn(DownVol,3)[1]/Accumn(Volume,3)[1])/(Accumn(DownVol,2)[2]/Accumn(Volume,2)[2])<1.1;
A15 = (Accumn(Volume,2)[2]/Accumn(Volume,2)[4] >= 8 Or
Accumn(Volume,2)[2]/Accumn(Volume,4)[4] >= 8 Or
Accumn(Volume,2)[2]/Accumn(Volume,6)[4] >= 8 Or
Accumn(Volume,2)[2]/Accumn(Volume,8)[4] >= 8 Or
Accumn(Volume,2)[2]/Accumn(Volume,10)[4] >= 8);
B1 = C[1] < C[4]*1.06;
B2 = Highest(H,2)[2] >= C[4]*1.06;
B3 = Accumn(H-O,1)[3] > Accumn(H-O,1)[2];
B4 = Highest(H,2)[2] > Highest(H,1)[1];
B5 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.25 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.30;
B6 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.20 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.25;
B7 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.15 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.20;
B8 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.10 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.15;
B9 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.05 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.10;
B10 = AccumN(v,1)[1] >= AccumN(v,2)[2]*0.01 and AccumN(v,1)[1] <= AccumN(v,2)[2]*0.05;
B11 = AccumN(V,1)[2] > AccumN(V,1)[1] and AccumN(V,1)[2] > AccumN(V,1)[3]*0.1;
if A1 and A2 and A3 and A4 and A5 and A11 and (A12 or A13 or A14) and A15 Then
Buy("A6");
if A1 and A2 and A3 and A4 and A6 and A11 and (A12 or A13 or A14) and A15 Then
Buy("A5");
if A1 and A2 and A3 and A4 and A7 and A11 and (A12 or A13 or A14) and A15 Then
Buy("A4");
if A1 and A2 and A3 and A4 and A8 and A11 and (A12 or A13 or A14) and A15 Then
Buy("A3");
if A1 and A2 and A3 and A4 and A9 and A11 and (A12 or A13 or A14) and A15 Then
Buy("A2");
if A1 and A2 and A3 and A4 and A10 and A11 and (A12 or A13 or A14) and A15 Then
Buy("A1");
if B1 and B2 and B3 and B4 and B5 and B11 Then
Buy("B6");
if B1 and B2 and B3 and B4 and B6 and B11 Then
Buy("B5");
if B1 and B2 and B3 and B4 and B7 and B11 Then
Buy("B4");
if B1 and B2 and B3 and B4 and B8 and B11 Then
Buy("B3");
if B1 and B2 and B3 and B4 and B9 and B11 Then
Buy("B2");
if B1 and B2 and B3 and B4 and B10 and B11 Then
Buy("B1");
var : A1Price(0),A1high(0);
var : A2Price(0),A2high(0);
var : A3Price(0),A3high(0);
var : A4Price(0),A4high(0);
var : A5Price(0),A5high(0);
var : A6Price(0),A6high(0);
var : B1Price(0),B1high(0);
var : B2Price(0),B2high(0);
var : B3Price(0),B3high(0);
var : B4Price(0),B4high(0);
var : B5Price(0),B5high(0);
var : B6Price(0),B6high(0);
if MarketPosition == 1 Then
{
#A1진입 발생
#보유수량이 증가하고 최근 발생한 진입명이 A1이면
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A1" Then
{
#진입가 저장
A1Price = LatestEntryPrice(0);
#진입이후 최고가의 초기값으로 현재봉 고가저장
A1high = H;
}
#새로운 고가가 발생하면 변수의 값을 새로운 고가를 변경
if A1high > 0 and H > A1high Then
A1high = H;
if A1Price > 0 Then #추가된 if문
{
#12% 수익이면 청산
ExitLong("A1-1",AtLimit,A1Price*1.12,"A1");
#1% 이상 수익이후에 7% 하락하면 청산
if A1high >= A1Price*1.01 Then
ExitLong("A1-2",AtStop,A1high*0.93,"A1");
#6% 손실시 청산
ExitLong("A1-3",AtStop,A1Price*0.94,"A1");
}
#A2진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A2" Then
{
A2Price = LatestEntryPrice(0);
A2high = H;
}
if A2high > 0 and H > A2high Then
A2high = H;
if A2Price > 0 Then
{
ExitLong("A2-1",AtLimit,A2Price*1.12,"A2");
if A2high >= A2Price*1.01 Then
ExitLong("A2-2",AtStop,A2high*0.93,"A2");
ExitLong("A2-3",AtStop,A2Price*0.94,"A2");
}
#A3진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A3" Then
{
A3Price = LatestEntryPrice(0);
A3high = H;
}
if A3high > 0 and H > A3high Then
A3high = H;
if A3Price > 0 Then
{
ExitLong("A3-1",AtLimit,A3Price*1.12,"A3");
if A3high >= A3Price*1.01 Then
ExitLong("A3-2",AtStop,A3high*0.93,"A3");
ExitLong("A3-3",AtStop,A3Price*0.94,"A3");
}
#A4진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A4" Then
{
A4Price = LatestEntryPrice(0);
A4high = H;
}
if A4high > 0 and H > A4high Then
A4high = H;
if A4Price > 0 Then
{
ExitLong("A4-1",AtLimit,A4Price*1.12,"A4");
if A4high >= A4Price*1.01 Then
ExitLong("A4-2",AtStop,A4high*0.93,"A4");
ExitLong("A4-3",AtStop,A4Price*0.94,"A4");
}
#A5진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A5" Then
{
A5Price = LatestEntryPrice(0);
A5high = H;
}
if A5high > 0 and H > A5high Then
A5high = H;
if A5Price > 0 Then
{
ExitLong("A5-1",AtLimit,A5Price*1.12,"A5");
if A5high >= A5Price*1.01 Then
ExitLong("A5-2",AtStop,A5high*0.93,"A5");
ExitLong("A5-3",AtStop,A5Price*0.94,"A5");
}
#A6진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "A6" Then
{
A6Price = LatestEntryPrice(0);
A6high = H;
}
if A6high > 0 and H > A6high Then
A6high = H;
if A6Price > 0 Then
{
ExitLong("A6-1",AtLimit,A6Price*1.12,"A6");
if A6high >= A6Price*1.01 Then
ExitLong("A6-2",AtStop,A6high*0.93,"A6");
ExitLong("A6-3",AtStop,A6Price*0.94,"A6");
}
#B1진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "B1" Then
{
B1Price = LatestEntryPrice(0);
B1high = H;
}
if B1high > 0 and H > B1high Then
B1high = H;
if B1Price > 0 Then
{
ExitLong("B1-1",AtLimit,B1Price*1.12,"B1");
if B1high >= B1Price*1.01 Then
ExitLong("B1-2",AtStop,B1high*0.93,"B1");
ExitLong("B1-3",AtStop,B1Price*0.94,"B1");
}
#B2진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "B2" Then
{
B2Price = LatestEntryPrice(0);
B2high = H;
}
if B2high > 0 and H > B2high Then
B2high = H;
if B2Price > 0 Then
{
ExitLong("B2-1",AtLimit,B2Price*1.12,"B2");
if B2high >= B2Price*1.01 Then
ExitLong("B2-2",AtStop,B2high*0.93,"B2");
ExitLong("B2-3",AtStop,B2Price*0.94,"B2");
}
#B3진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "B3" Then
{
B3Price = LatestEntryPrice(0);
B3high = H;
}
if B3high > 0 and H > B3high Then
B3high = H;
if B3Price > 0 Then
{
ExitLong("B3-1",AtLimit,B3Price*1.12,"B3");
if B3high >= B3Price*1.01 Then
ExitLong("B3-2",AtStop,B3high*0.93,"B3");
ExitLong("B3-3",AtStop,B3Price*0.94,"B3");
}
#B4진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "B4" Then
{
B4Price = LatestEntryPrice(0);
B4high = H;
}
if B4high > 0 and H > B4high Then
B4high = H;
if B4Price > 0 Then
{
ExitLong("B4-1",AtLimit,B4Price*1.12,"B4");
if B4high >= B4Price*1.01 Then
ExitLong("B4-2",AtStop,B4high*0.93,"B4");
ExitLong("B4-3",AtStop,B4Price*0.94,"B4");
}
#B5진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "B5" Then
{
B5Price = LatestEntryPrice(0);
B5high = H;
}
if B5high > 0 and H > B5high Then
B5high = H;
if B5Price > 0 Then
{
ExitLong("B5-1",AtLimit,B5Price*1.12,"B5");
if B5high >= B5Price*1.01 Then
ExitLong("B5-2",AtStop,B5high*0.93,"B5");
ExitLong("B5-3",AtStop,B5Price*0.94,"B5");
}
#B6진입
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "B6" Then
{
B6Price = LatestEntryPrice(0);
B6high = H;
}
if B6high > 0 and H > B6high Then
B6high = H;
if B6Price > 0 Then
{
ExitLong("B6-1",AtLimit,B6Price*1.12,"B6");
if B6high >= B6Price*1.01 Then
ExitLong("B6-2",AtStop,B6high*0.93,"B6");
ExitLong("B6-3",AtStop,B6Price*0.94,"B6");
}
}
Else
{
A1Price = 0;
A1high = 0;
A2Price = 0;
A2high = 0;
A3Price = 0;
A3high = 0;
A4Price = 0;
A4high = 0;
A5Price = 0;
A5high = 0;
A6Price = 0;
A6high = 0;
B1Price = 0;
B1high = 0;
B2Price = 0;
B2high = 0;
B3Price = 0;
B3high = 0;
B4Price = 0;
B4high = 0;
B5Price = 0;
B5high = 0;
B6Price = 0;
B6high = 0;
}
2020-12-14
708
글번호 144629
요타 님에 의해서 삭제되었습니다.
2020-12-11
8
글번호 144628
답변완료
전략 문의드립니다
시스템 전략 문의드립니다
최근 20개 캔들의 최고 종가 상향 돌파시 매수
최근 20개 캔들의 최저 종가 하향 돌파시 매도
감사합니다
2020-12-11
824
글번호 144622
답변완료
질문드림니다.
** 오늘도 수고가 많으십니다. **
1)볼린저 밴드 상,하 차이가 20틱이상 20일 이동평균선 완성봉으로 돌파 하고 상단 터치시 현재가격으로 매수진입
1.볼린저 밴드 상,하 차이가 15틱 이하 이면 현재가격으로 매수 청산
2)볼린저 밴드 상.하 차이가 20틱이상 20일 이동평균선 완성봉으로 돌파 하고 하단 터치시 현재가격으로 매도 진입
2.볼린저 밴드 상,하 차이가 15틱이하이면 현재가격으로 매도 청산
** 언제나 행복한 마음이 가득하세요. 행복하세요.**
2020-12-11
864
글번호 144619
답변완료
수식 부탁드립니다.
안녕하세요?
수식한가지 부탁드립니다.
이평선2개 (외부변수)
***진입
정배열에서 양봉(몸통길이 외부변수)+음봉(몸통길이 외부변수의 이상일시) 매도
역배열에서 음봉(몸통길이 외부변수)+양봉(몸통길이 외부변수의 이상일시) 매수
각각 외부변수로 해주시고, 매도와 매수의 진입봉의 몸통길이(외부변수) 이상일시에만 작동되도록 부탁드립니다.
***기타
진입후 익절또는 손절까지 재진입x
매매횟수 (외부변수)
***청산
손절(외부변수)
익절(외부변수)
감사합니다.
부탁드립니다.
2020-12-11
923
글번호 144614
답변완료
전략식 변환 부탁드립니다.
안녕하세요. 하기전략을 예스랭귀지로 전환부탁드립니다.
수고하세요.
param : SSTIME(070001), EETIME(182000);
Vars : TCOND(False);
If SSTIME < EETIME Then
Begin
If SSTIME <= TIME And TIME <= EETIME Then TCOND = True
Else TCOND = False;
End
Else
Begin
If SSTIME <= TIME Or TIME <= EETIME Then TCOND = True
Else TCOND = False;
End;
If TCOND Then
Begin
// 분봉 기준의 40 이평 및 120 이평
Vars : Period1(14), Period2(179);
Vars : ST_Ma1(0), ST_Ma2(0);
ST_Ma1 = AvgFast((O+H+L+C)/4, Period1);
ST_Ma2 = AvgFast((O+H+L+C)/4, Period2);
// 일봉 기준 파란색
Vars : vShortP7(14), vLongP7(173), vSigP7(1);
Vars : vMACD7(0), vSignal7(0);
vMACD7 = MACD(C, vShortP7, vLongP7);
vSignal7 = XAverage(vMACD7, vSigP7);
/////////////////////////////////////////////////////////
param : BuyA_ShortLeng(7) // 단기 이동평균 기간
, BuyA_LongLeng(40) // 장기 이동평균 기간
;
var : BuyA_V1(0), BuyA_V2(0), BuyA_Result(FALSE);
BuyA_V1 = SMA(Volume, BuyA_ShortLeng);
BuyA_V2 = SMA(Volume, BuyA_LongLeng);
BuyA_Result = FALSE;
IF BuyA_V1 >= BuyA_V2 Then
BuyA_Result = TRUE;
Vars : vDn (102), vUp (1000);
If BuyA_V1 > vDN And BuyA_V1 < vUp And vMACD7 < 0 And CrossDown(ST_Ma1, ST_Ma2) Then Sell("V매도");
If BuyA_V1 > vDN And BuyA_V1 < vUp And vMACD7 > 0 And CrossUp(ST_Ma1, ST_Ma2) Then Buy("V매수");
// 익절 및 손절
Vars : Exit_P(0), Exit_L(0);
Vars : SP(0), TickSize(0);
SP = SignalPosition;
TickSize = OneTick * PriceScale;
SetStopLoss(Exit_L * TickSize * CurrentContracts);
SetProfitTarget(Exit_P * TickSize * CurrentContracts);
End;
///////////////////////////////////////////////////////////////////////////////////////////////
Params : SSTIME1(183500), EETIME1(192600);
Vars : TCOND1(False);
If SSTIME1 < EETIME1 Then
Begin
If SSTIME1 <= TIME And TIME <= EETIME1 Then TCOND1 = True
Else TCOND1 = False;
End
Else
Begin
If SSTIME1 <= TIME Or TIME <= EETIME1 Then TCOND1 = True
Else TCOND1 = False;
End;
If TCOND1 Then
Begin
Vars : SP12(0), TickSize12(0);
SP12 = SignalPosition;
TickSize12 = OneTick * PriceScale;
Params : Period(10);
V0 = Lowest(L, Period)[1]; // Price Ch Lower
V1 = Highest(H, Period)[1]; // Price Ch Upper
Params : vP1(5), vP2(21);
Vars : vM1(0), vM2(0);
vM1 = AvgFast(C, vP1);
vM2 = AvgFast(C, vP2);
If SP12 = 0 Then
Begin
If vM1 > vM2 And C < v0 Then Buy("B", Atlimit, v0);
If vM1 < vM2 And C > v1 Then Sell("S", Atlimit, v1);
End;
// 익절 및 손절
Params : Exit_P12(121), Exit_L12(50);
SP12 = SignalPosition;
TickSize12 = OneTick * PriceScale;
SetStopLoss(Exit_L12 * TickSize12 * CurrentContracts);
SetProfitTarget(Exit_P12 * TickSize12 * CurrentContracts);
Params : exitP(65), trailA(1);
SetStopTrailing(trailA * TIckSize12 * CurrentContracts, exitP * TIckSIze12 * CurrentContracts);
End;
////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// ///////////////////////////////////////
param : SSTIME3(193200), EETIME3(211200);
Vars : TCOND3(False);
If SSTIME1 < EETIME1 Then
Begin
If SSTIME3 <= TIME And TIME <= EETIME3 Then TCOND3 = True
Else TCOND3 = False;
End
Else
Begin
If SSTIME3 <= TIME Or TIME <= EETIME3 Then TCOND = True
Else TCOND3 = False;
End;
If TCOND3 Then
Begin
Vars : SP1(0), TickSize1(0);
SP1 = SignalPosition;
TickSize1 = OneTick * PriceScale;
Params : Period13(4);
V0 = Lowest(L, Period13)[1]; // Price Ch Lower
V1 = Highest(H, Period13)[1]; // Price Ch Upper
Params : vP11(19), vP22(42);
Vars : vM11(0), vM22(0);
vM11 = AvgFast(C, vP11);
vM22 = AvgFast(C, vP22);
If SP1 = 0 Then
Begin
If vM11 > vM22 And C < v0 Then Buy("Bb", Atlimit, v0);
If vM11 < vM22 And C > v1 Then Sell("Ss", Atlimit, v1);
End;
// 익절 및 손절
Params : Exit_P1(148), Exit_L1(46);
Vars : SP111(0), TickSize111(0);
SP111 = SignalPosition;
TickSize111 = OneTick * PriceScale;
SetStopLoss(Exit_L1 * TickSize111 * CurrentContracts);
SetProfitTarget(Exit_P1 * TickSize111 * CurrentContracts);
Params : exitP1(101), trailA1(1);
SetStopTrailing(trailA1 * TIckSize111 * CurrentContracts, exitP1 * TIckSIze111 * CurrentContracts);
End;
///////////////////////////////// ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
param : SSTIME33(203100), EETIME33(060000);
Vars : TCOND33(False);
If SSTIME33 < EETIME33 Then
Begin
If SSTIME33 <= TIME And TIME <= EETIME33 Then TCOND33 = True
Else TCOND33 = False;
End
Else
Begin
If SSTIME33 <= TIME Or TIME <= EETIME33 Then TCOND33 = True
Else TCOND33 = False;
End;
If TCOND33 Then
Begin
Vars : SP11(0), TickSize11(0);
SP11 = SignalPosition;
TickSize11 = OneTick * PriceScale;
Params : Period133(5);
V0 = Lowest(L, Period133)[1]; // Price Ch Lower
V1 = Highest(H, Period133)[1]; // Price Ch Upper
Params : vP111(9), vP222(39);
Vars : vM111(0), vM222(0);
vM111 = AvgFast(C, vP111);
vM222 = AvgFast(C, vP222);
If SP11 = 0 Then
Begin
If vM111 > vM222 And C < v0 Then Buy("Bbb", Atlimit, v0);
If vM11 < vM222 And C > v1 Then Sell("Sss", Atlimit, v1);
End;
// 익절 및 손절
Params : Exit_P11(400), Exit_L11(82);
Vars : SP1111(0), TickSize1111(0);
SP1111 = SignalPosition;
TickSize1111 = OneTick * PriceScale;
SetStopLoss(Exit_L11 * TickSize1111 * CurrentContracts);
SetProfitTarget(Exit_P11 * TickSize1111 * CurrentContracts);
Params : exitP12(44), trailA12(1);
SetStopTrailing(trailA12 * TIckSize1111 * CurrentContracts, exitP12 * TIckSIze1111 * CurrentContracts);
End;
///////////////////////////////////////////////////////////////////////////////////////////////
param : SSTIME2(234960), EETIME2(022200);
Vars : TCOND2(False);
If SSTIME2 < EETIME2 Then
Begin
If SSTIME2 <= TIME And TIME <= EETIME2 Then TCOND = True
Else TCOND = False;
End
Else
Begin
If SSTIME2 <= TIME Or TIME <= EETIME2 Then TCOND = True
Else TCOND = False;
End;
If TCOND Then
Begin
// 분봉 기준의 40 이평 및 120 이평
Vars : Period5(17), Period6(171);
Vars : ST_Ma5(0), ST_Ma6(0);
ST_Ma5 = AvgFast((O+H+L+C)/4, Period5);
ST_Ma6 = AvgFast((O+H+L+C)/4, Period6);
// 일봉 기준 파란색
//////////////////////////////////////////////////
Params : BuyA_ShortLeng12(7), BuyA_LongLeng12(24) ;
var : BuyA_V123(0), BuyA_V234(0), BuyA_Result123(FALSE);
BuyA_V123 = SMA(Volume, BuyA_ShortLeng12);
BuyA_V234 = SMA(Volume, BuyA_LongLeng12);
BuyA_Result123 = FALSE;
IF BuyA_V123 >= BuyA_V234 Then
BuyA_Result123 = TRUE;
if ( BuyA_Result123 )
Then
Begin
If BuyA_V123 > 140 And BuyA_V123 < 8000 And CrossDown(ST_Ma5, ST_Ma6) Then Sell("A매도");
If BuyA_V123 > 140 And BuyA_V123 < 8000 And CrossUp(ST_Ma5, ST_Ma6) Then Buy("A매수");
End;
// 익절 및 손절
Params : Exit_P2(200), Exit_L2(106);
Vars : SP2(0), TickSize2(0);
SP2 = SignalPosition;
TickSize2 = OneTick * PriceScale;
SetStopLoss(Exit_L2 * TickSize2 * CurrentContracts);
SetProfitTarget(Exit_P2 * TickSize2 * CurrentContracts);
Params : exitP2(38), trailA2(1);
SetStopTrailing(trailA2 * TIckSize2 * CurrentContracts, exitP2 * TIckSIze2 * CurrentContracts);
End;
2020-12-11
916
글번호 144610
답변완료
크로스 지점 누적해서 수직선 표시
차트에서 macd가 시그널선을 골든크로스한 부분들을 모두 수직선으로 표시하는 코드를 부탁드립니다.
우선 봉차트에 표시해 주시고, 가능하다면 MACD 차트에도 수직선을 그렸으면 좋겠습니다.
2020-12-11
725
글번호 144601
답변완료
수식 의뢰 부탁드립니다.
나스닥을 매매하려고 합니다
아래 수식에서 3가지 조건을 추가하려고 합니다
1. 3번 연속손실 거래시 매매중지
(새벽 3시 반 당일청산, 저녁 11:30분 로스컷 카운트 제로 재설정)
2. 타겟수익(변수설정) 발생 시 이익실현 후 5분 매매정지
3. 손실 발생 시 5분 매매정지
감사합니다
------
input: 진입(2),청산(10),이동평균선(3);
var : hh(0),ll(0),mav(0);
#당일청산
If MarketPosition < 0 and time >= 033000 and time < 070000 Then
Exitshort("DailyExitShort");
if MarketPosition > 0 and time >= 033000 and time < 070000 Then
ExitLong("DailyExitlong");
#청산
ExitLong("EL", atstop, Lowest( Low , 청산 ));
ExitShort("ES", atstop,Highest( High , 청산 ));
hh = Highest(h,진입);
ll = Lowest(l,진입);
mav = ma(C,이동평균선);
if ( stime >= 223000 or stime < 030000 ) Then
{
if c > mav and c > hh[1] Then
Buy();
if c < mav and c < ll[1] Then
Sell();
}
2020-12-11
863
글번호 144600
답변완료
breadth thrust 호출할 수 있는 방법
breadth thrust 지표를 만들고 싶은데, 당췌 단순한 차트값을 가지고 구할 수 있는게 아니어서.
혹시 가능한 방법이 있을까요?
2020-12-11
860
글번호 144599