늘 고맙습니다.
청산식을 만들다보니 잘 이해가 안가는 부분이 있어 문의 드립니다.
아래와 같은 청산식을 돌려보았습니다.
그런데 아래 수식중
be11-2:
bei12=index;
이것을 넣지않고 돌리니 진입후 바로 청산이 되어 버립니다.
왜 그런것인가요?
그 아래 if문이 없어서 그걸 다시 쓰지도 않는데 말이죠.
var:be11(0),bei11(0),bei12(0),be11목표(0);
if MarketPosition == 1 Then
{
be11=1;
bei11=Index;
be11목표=진폭[BarsSinceEntry]+LL50[BarsSinceEntry];
}
if be11==1 and bei11>0 Then
{
be11=2;
bei12=Index;
ExitLong("장기정배열매수청산",AtLimit,be11목표,"장기정배열매수");
ExitLong("장기정배열매수청산2",AtLimit,EntryPrice+75,"장기정배열매수");
ExitLong("장기정배열매수손절",AtStop,EntryPrice-25,"장기정배열매수");
}
답변 1
예스스탁
예스스탁 답변
2024-05-17 11:59:14
안녕하세요
예스스탁입니다.
1
우선 올려주신 청산식이 어떤 의도로 작성하신 내용인지 알 수가 없습니다.
2
변수는 값을 저장하면 다음에 변경하기 까지 값을 유지하게 됩니다.
be11=2;
bei12=Index;
작성하신 수식에서 위 내용이 있으므로 해서
매수포지션이 청산이 되면 MarketPosition이 1이 아니게 되면
2값을 유지하게 되고 다음 매수가 진입하면 1로 변경이 됩니다.
위 내용이 없으면 처음 한번 be11에 1이 저장되고 bei1에 봉번호가 저장되면
계속 그값을 유지하게 됩니다.
차트 전체상 단지 1만 가지는 내용이 되고 봉번호는 한번 저장되면 당연히 0보다 크므로
if be11==1 and bei11>0 Then 조건이 항상 만족하는 조건이 되게 됩니다.
3
작성하신 내용이
매수진입 후 be11목표 도달하면 청산
75포인트 수익이면 청산,
25포인트 손실이면 청산하는 내용이면
해당 be11,bei12는 불필요한 변수들입니다.
아래와 같이만 작성하시면 됩니다.
var:be11목표(0);
if MarketPosition == 1 Then
{
be11목표=진폭[BarsSinceEntry]+LL50[BarsSinceEntry];
ExitLong("장기정배열매수청산",AtLimit,be11목표,"장기정배열매수");
ExitLong("장기정배열매수청산2",AtLimit,EntryPrice+75,"장기정배열매수");
ExitLong("장기정배열매수손절",AtStop,EntryPrice-25,"장기정배열매수");
}
즐거운 하루되세요
> 산골소년 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 늘 고맙습니다.
청산식을 만들다보니 잘 이해가 안가는 부분이 있어 문의 드립니다.
아래와 같은 청산식을 돌려보았습니다.
그런데 아래 수식중
be11-2:
bei12=index;
이것을 넣지않고 돌리니 진입후 바로 청산이 되어 버립니다.
왜 그런것인가요?
그 아래 if문이 없어서 그걸 다시 쓰지도 않는데 말이죠.
var:be11(0),bei11(0),bei12(0),be11목표(0);
if MarketPosition == 1 Then
{
be11=1;
bei11=Index;
be11목표=진폭[BarsSinceEntry]+LL50[BarsSinceEntry];
}
if be11==1 and bei11>0 Then
{
be11=2;
bei12=Index;
ExitLong("장기정배열매수청산",AtLimit,be11목표,"장기정배열매수");
ExitLong("장기정배열매수청산2",AtLimit,EntryPrice+75,"장기정배열매수");
ExitLong("장기정배열매수손절",AtStop,EntryPrice-25,"장기정배열매수");
}