안녕하세요
몇 가지 질문 드립니다!
1. 업데이트된 값을 확인하려면 어떻게 해야할까요?
print 함수가 있긴 한데 어떻게 사용해야 실제 실행해보며 어떤식으로 확인할 수 있는지 궁금합니다
아래 수식에서 청산 이후 업데이트된 HB값을 확인하려면 어떻게 해야할까요?
input ; HB(10000) ;
var : e60 (0) ;
e60 = ema(c, 60) ;
if crossup(C, HB) then buy();
if crossdown(C, e60) then begin
exitlong();
HB == Highest(H,BarsSinceEntry) ;
end;
2. 직전 3봉이 양봉인 조건은 어떻게 만들까요?
직전 3봉이 양봉 & 현재봉의 종가가 지정가를 상향돌파하면 매수
input : HB(10000) ;
if (현재봉 직전 3봉이 양봉) and crossup(C, HB) Then buy();
감사합니다
답변 1
예스스탁
예스스탁 답변
2022-01-27 11:51:41
안녕하세요
예스스탁입니다.
1
if crossdown(C, e60) then begin
exitlong();
HB == Highest(H,BarsSinceEntry) ;
end;
올리신 수식에서 HB == Highest(H,BarsSinceEntry)는
if문에 포함되어 있지않고 별도로 조건식이 작성이 되어 있는데 어떤 내용인지 알수 없습니다
만약 작성하신 의도가 HB에 진입이후의 최고가를 저장하는 내용이면
HB = Highest(H,BarsSinceEntry);가 되어야 하지만
위와 같이 변경하면 에러가 발생합니다.
HB는 외부변수(input)입니다.
외부변수는 지정한 값을 고정으로 사용하는 변수로 수식안에서 값을 저장받게 할수 없습니다.
단지 매수이후에 최고값을 출력해서 보고자 하는 내용이면
아래와 같이 작성하시면 됩니다. messagelog함수를 이용하면 편집기 디버깅창에 출력되고
print함수를 이용하면 txt나 csv파일로 값이 추출되고
해당 파일은 프로그램 설치폴더 안에 yeslang폴더에 추출됩니다.
데이타 추출과 관련된 부분은 예스랭구지 도움말 --> 예스랭귀지 활용 --> 데이타추출에 자세한 설명이 있습니다.
input : HB(10000) ;
var : e60 (0) ;
e60 = ema(c, 60) ;
if crossup(C, HB) then buy();
if MarketPosition == 1 Then
{
var1 = Highest(h,BarsSinceEntry);
MessageLog("%.2f",var1);
print("data.txt","%.2f",var1);
if crossdown(C, e60) then
exitlong();
}
2
input : HB(10000) ;
if CountIf(C>O,3)[1] == 3 and crossup(C, HB) Then buy();
즐거운 하루되세요
> jshwang2 님이 쓴 글입니다.
> 제목 : 수식문의드립니다
> 안녕하세요
몇 가지 질문 드립니다!
1. 업데이트된 값을 확인하려면 어떻게 해야할까요?
print 함수가 있긴 한데 어떻게 사용해야 실제 실행해보며 어떤식으로 확인할 수 있는지 궁금합니다
아래 수식에서 청산 이후 업데이트된 HB값을 확인하려면 어떻게 해야할까요?
input ; HB(10000) ;
var : e60 (0) ;
e60 = ema(c, 60) ;
if crossup(C, HB) then buy();
if crossdown(C, e60) then begin
exitlong();
HB == Highest(H,BarsSinceEntry) ;
end;
2. 직전 3봉이 양봉인 조건은 어떻게 만들까요?
직전 3봉이 양봉 & 현재봉의 종가가 지정가를 상향돌파하면 매수
input : HB(10000) ;
if (현재봉 직전 3봉이 양봉) and crossup(C, HB) Then buy();
감사합니다