커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1756
글번호 230811
답변완료
피보나치 조정대, 꺽은선을 평행선화
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var : HH(0),LL(0);
HH = DayHigh;
LL = daylow;
var1 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per1/100));
var2 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per2/100));
var3 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per3/100));
var4 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per4/100));
var5 = 10^(LOG10(HH)-(LOG10(HH)-LOG10(LL))*(Per5/100));
plot1(HH,"최고");
plot2(var1);
plot3(var2);
plot4(var3);
plot5(var4);
plot6(var5);
plot7(LL,"최저");
주가가 상승하면 피보나치선이 확정되면서 꺽여서 따라 올라가는데,이것을 주가가 상승할때 무조건 당일의 최고점과 최저점만을 기준으로 판단하여,모든선이 처음부터 고정된 값이 아니고 당일의 최고점과 최저점을 따라 시초부분을 꺽여서 올라가지 않고 나중 상승 부분까지 계속 들어 올리면서 평행선으로 종일 같이 움직이게 할수 있을까요?
곧 최저점, 최고점-최저점의 23.6% 38.2% 50% 61.8% 76.4% ,최고점,이렇게 7개의 평행선을 그리고 싶습니다.감사합니다.
2022-05-19
1242
글번호 159074
답변완료
시스템 작성 부탁드립니다.
저는 여러개의 스톡캐스트 인텍스모먼트를 변형하여 아래 식과 같이 매수 매도를 합니다.
또한 지표로 가중이동평균선 25 75 150일선을 사용합니다.
아래의 식대로 매수*매도 진입 후 선물지수가 가중이동평균75일선에 닿았을때 추가 매수를 하고 싶습니다.
추가 매수 조건
아래의 식대로 진입후 선물지수가 가중이동평균75일선에 닿았을때 추가 매수
추가 매도 조건
아래의 식대로 진입후 선물지수가 가중이동평균75일선에 닿았을때 추가 매도
RSIV = RSI(RSIP);
if RSIV >= 70 and
wma1 > wma2 and wma2 > wma3 and
SMI3 > 0 and SMI4 > 0 and SMi7 >0 and SMI3 > SMI4 and SMi5 <27 and SMi1111> SMi411 and SMi411 > SMi1211 and SMi411>31 and SMi1211 <SMi1311 and SMi1211<63 and SMi2<69 and SMi5 > -12 and
((SMI2 > 0 and crossup(SMI1,-1)) or (SMI1 > 0 and crossup(SMI2,-1))) Then
buy();
if RSIV <= 30 and
wma1 < wma2 and wma2 < wma3 and
SMI3 < 0 and SMI4 < 0 and smi7 <0 and SMI3 < SMI4 and SMi5 > -27 and SMi1111< SMi411 and SMi411 < SMi1211 and SMi411 < -31 and SMi1211 >SMi1311 and smi1211 > -63 and SMi2> -69 and SMi5 <12 and
((SMI2 < 0 and CrossDown(SMI1,1)) or (SMI1 < 0 and CrossDown(SMI2,1))) Then
sell();
청산일때는 추가 매수*매도 한 모든 포지션 청산 원합니다.
그리고 기존에 들어갔던 포지션이 청산이 된 상태에서는 선물지수가 75선에 닿았더라도 진입금지 하고 싶습니다.
2022-05-19
1129
글번호 159073
답변완료
수식 부탁드립니다
수고하십니다.
아래 내용으로 시스템 식 부탁합니다.
################
당일 아침부터 15시까지의 금융투자의 K200 선물 누적순매수 수량 = Qf
당일 아침부터 15시까지의 금융투자의 K200 콜옵션 누적 순매수 수량 = Qc
당일 아침부터 15시까지의 금융투자의 K200 풋옵션 누적 순매수 수량 = Qp
라고 할 때....
1] Qf가 Xu개 이상이고
Qc가 Yu개 이상이며
Qp가 Zu개 이하이면
동시호가에 선물 매수1개 하여 오버나잇후 익일 시초가 동시호가에 청산..
반대로
Qf가 Xd개 이하이고
Qc가 Yd개 이하이며
Qp가 Zd개 이상이면
동시호가에 선물 매도1개 하여 오버나잇후 익일 시초가 동시호가에 청산..
2] 만일 동시호가에 주문/체결이 어려우면
진입은 당일 1525분에 주문...
청산은 익일 0905분에 주문...
##########
하는 시스템 식 부탁합니다.
감사합니다. 수고하세요...
2022-05-19
1039
글번호 159072
답변완료
77274 추가질문 드립니다
안녕하세요~
77274 에서 질문드렸던부분 추가질문 드립니다
이전에 올렸던 수식을 1분봉으로 설정하고
1분 단위로 끊어서 로그를 확인해봤는데
ex) 7:30에 진입이 일어났으면, 7:29 ~ 7:31 까지, stime =< 73000 이런 식으로 설정해 1분 단위로 끊어 1분봉의 로그를 확인
정상적으로 진입이 일어난 경우를 진입 시점 전후로 로그의 변화를 체크해보니
1. SC1 == true, SC2 == true, marketposition == 0
2. SC1 == true, SC2 == true, marketposition == -1
3. SC1 == true, SC2 == true, marketposition == -1
이런 식으로 일어났습니다
수식에 진입가격(=LL[i]) 도달시, SC1, SC2를 false로 바꾸도록 설정했는데
- 진입조건
if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b01", AtLimit, LL[i]);
if CrossUp(H, LL[i+1]) Then BC1[i] = true;
if BC1[i] == true && CrossUp(H, LL[i-1]) Then BC2[i] = true;
- 청산조건
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]);
}
- SC1,2 false로 바꾸는 조건
if (CrossDown(L, LL[i])&& BC1[i] == true && BC2[i] == true) or CrossUp(H, LL[i-2]) Then
{
BC1[i] = False;
BC2[i] = False;
}
marketposition은 진입이 일어난 봉에서 바로 변하는데
SC1, SC2는 조건을 만족한 봉에서 한봉 더 지나야 변했습니다
이전 글에서 첨부한 사진의 문제도 다시 확인해보면
의도한대로라면 1-1에서 기존의 매수 표지션도 청산되고, SC2 또한 L[5](=11884)에 도달해 true로 바뀌어야 했으나
1-1 완성 이후엔 marketposition만 1 => 0으로 바뀌었고, SC2는 여전히 false였습니다
의도한대로라면 1-2에서 L[4](=11894)에 도달해 s04가 체결되어야 했으나
이때는 SC2 == false이어서 체결되지 않았고
1-2의 봉이 완성되고 나서야 SC2가 true로 바뀌었고,
1-3의 시가가 원래의 atlimit 체결가인 11894보다 높기 때문에 시가로 체결된 상황입니다
이후에도 청산 될때마다 s04 진입이 지속된건
SC1, SC2를 false로 리셋하는 조건이, SC1, SC2 둘 다 true이면서 L[i]를 crossup하는 상황인데
1-2에서 SC2가 false였고, 1-3이 되서야 SC2가 true로 바뀌었지만,
이미 1-3의 시가 > L[4]인 상황에서 양봉으로 마무리되었기 때문에, L[4]를 crossup을 하지 않아 s04가 청산될때마다 계속 진입이 일어난것이었습니다
문제의 원인은 marketposition은 event가 발생한 봉이 완성된 직후 바로 바뀌는데
제가 설정해놓은 SC1, SC2는 event가 발생한 봉에서 한 봉이 더 완성되고 나서 바뀌기 때문이고
사진상의 봉 뿐만 아니라
다른 봉들 및 매도가 아닌 매수 상황까지 포함해 여러개 확인해봤을때
BC1, BC2, SC1, SC2가 한봉 지연되어 바뀌는 문제가 전부 확인되었습니다
이런 문제가 발생하는 원인이 무엇인지
해결하려면 어떻게 해야하는지 알고싶습니다
감사합니다
2022-05-19
916
글번호 159071
답변완료
매수 조건의 계좌 연동 관련 문의
안녕하세요.
혹시 다음의 기능도 가능한지 알고 싶습니다.
"매수 조건 발생 시.... 계좌에 long 포지션 잔고가 있고 이익 중이면 매수, 그렇지 않으면 아무것도 안함"
2022-05-19
1042
글번호 159057
답변완료
수정 부탁드려요
답변대로 했습니다만
첫신호가 1분봉 3번째부터 나와야 하는데
매일 매일 다르네요
매일 9시에 장 시작후 1분봉 3번째 봉부터 신호가 나와줘야 하는데 다르게 나오네요
검토부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 1분 신호
> 안녕하세요
예스스탁입니다.
if NextBarStime >= 90300 Then
{
if C[1] > C[2] Then
Buy("b",AtMarket);
if C[1] < C[2] Then
Sell("s",AtMarket);
}
즐거운 하루되세요
> 아자으 님이 쓴 글입니다.
> 제목 : 1분 신호
> 안녕하세요~
미니 선물연결 1분 차트를 열고
9시 3분부터 신호를 적용시켜 차트에 buy, sell을 표시하고 싶습니다.
기준은 선물연결 1분마다 종가를 기준으로
9시 3분에는
9시 1분 종가보다 9시 2분 종가가 크면 "b", 작으면 "s";
9시 4분에는
9시 2분 종가보다 9시 3분 종가가 크면 "b", 작으면 "s";
부탁드립니다.
2022-05-19
1289
글번호 159056
답변완료
신호검색 질문
질문1.) 3분봉차트에 신호검색을 두개이상 넣으면 겹쳐보여서 알수가 없는데 겹치지 않게 하는 방법은 없는지요?
질문2.) 검색식을 선택후 검색버튼을 크릭하면 종목이 나옵니다.
그후 두번째 검색식을 선택후 검색버튼을 눌렀을 경우 두번째 검색식의 해당종목이 없으면 처음 검색한 종목이 지워지지않고 그대로 있어서 두번째 검색한 결과로 착각하곤합니다.
제가 조작을 잘못하는 건가요?
감사합니다.
2022-05-19
1170
글번호 159053
답변완료
지표식 문의입니다.
매번 성실한 답변에 감사드립니다.
1.일봉 지표
1).고가 전일종가대비 15% + 양봉
2).익일 1번 고점 돌파
3).1번 조건에 만족하고 이후 연속해서 2번 조건에 만족할때
** 고가가 전일 고가보다 낮을때 까지.
(1)번캔들의 저가+3)번 캔들의 고가)/2 라인을 긋도록 지표식 부탁드립니다.
2. 분봉 지표
1번 일봉지표를 분봉에도 그을수 있게 부탁합니다.
감사합니다.
2022-05-19
776
글번호 159045
답변완료
수식문의드립니다
안녕하세요~
만든 시스템에서 이해 안되는 진입이 나와 문의드립니다
수식은 아래와 같은데
사진에 보시면 표시해논 S04와 관련된진입에서만 이상한 진입이 발생합니다
1 ; 그보다 앞 봉에서 s04 진입조건에 도달했으나 진입 안했고, 1번의 시가에서 진입
2 ; 이전 봉에서 청산이 이루어진 직후 2번봉 시가에서 s04 진입. s04가 진입하는 자리 자체가 아니어서 s03의 청산조건으로 청산
3 ; 이전 봉에서 청산이 이루어진 직후, 3번봉 시가에서 s04 진입
4 ; 이전 봉에서 청산이 이루어진 직후, 3번봉 시가에서 s04 진입
s04와 관련된 수식만 잘못 입력했는지를 확인했을때도 이것만 잘못 입력한 부분은 없고
s04 이외엔 모두 정상적으로 작동합니다
원인이 뭔지 가능하다면 찾아주시면 감사하겠습니다!
수식은 아래와 같습니다
-----------------
input : Distance(10), TT(70000);
var : i(0);
array : LL[9](11884), BC1[9](False), BC2[9](false), SC1[9](False), SC2[9](False);
For i = 0 to 4 {LL[4-i] = LL[5-i] + distance;}
For i = 5 to 9 {LL[i+1] = LL[i] - distance;}
MessageLog("L3 %.2f, L4 %.2f, L5 %.2f, L6 %.2f, L7 %.2f", LL[3] , LL[4], LL[5], LL[6], LL[7]);
if sTime > TT Then
{
For i = 1 to 1
{
if MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b01", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s01", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b02", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s02", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b03", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s03", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b04", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s04", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b05", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s05", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b06", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s06", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b07", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s07", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b08", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s08", AtLimit, LL[i]);
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 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 MarketPosition == 0 && BC1[i] == true && BC2[i] == true Then Buy("b09", AtLimit, LL[i]);
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 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 MarketPosition == 0 && SC1[i] == true && SC2[i] == true Then Sell("s09", AtLimit, LL[i]);
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 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]);
}
}
}
-----------------
2022-05-19
941
글번호 159044