첨부 이미지
그림1
아래 매수재진입금지 식을 주셔서 그대로 기존식에 적용하였으나 첨부파일처럼 계속 재진입이 되네요. 원인을 다시 확인좀 부탁드립니다.
var : BX(False);
#영업일 변경
if Bdate != Bdate[1] Then
{
BX = False;
}
#청산발생
if TotalTrades > TotalTrades[1] Then
{
#당일 진입한 매수진입이고
#손절(setstoploss)로 청산되면
#BX = true;
if Bdate[BarsSinceEntry(1)] == Bdate and
MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then
{
BX = true;
}
else#아니면 BX는 false
BX = False;
}
#현재 무포지션이고 BX는 false이면 진입
#현재 무포지션이고 BX는 true이면 직전거래 진입가+10포인트보다 크거나 직전거래진입가-55보다 작으면 진입
#매도포지션일때 진입
if (MarketPosition == 0 and BX == False) or
(MarketPosition == 0 and BX == true and (C >= EntryPrice(1)+10 or C <= EntryPrice(1)-55)) Or
MarketPosition == -1 Then
{
if 매수조건 Then
Buy();
}
답변 2
예스스탁
예스스탁 답변
2024-10-23 13:40:56
안녕하세요
예스스탁입니다.
1
수식에 보시면 손절매로 언급하셔서 SetStopLoss로 청산된것을 기준으로 작성이 되어
청산명이 StopLoss로 되어 있습니다.
올리신 그림에는 청산명이 Bx1,be1이고 아마 청산시 손실을 본 청산 모두를 지청하시는 것 같습니다.
손실이 발생하면 다음진입을 제한하는 내용으로 변경해 드립니다.
2
var : BX(False);
#영업일 변경
if Bdate != Bdate[1] Then
{
BX = False;
}
#청산발생
if TotalTrades > TotalTrades[1] Then
{
#당일 진입한 매수진입이고
#손절(setstoploss)로 청산되면
#BX = true;
if Bdate[BarsSinceEntry(1)] == Bdate and
MarketPosition(1) == 1 and PositionProfit(1) < 0 Then
{
BX = true;
}
else#아니면 BX는 false
BX = False;
}
#현재 무포지션이고 BX는 false이면 진입
#현재 무포지션이고 BX는 true이면 직전거래 진입가+10포인트보다 크거나 직전거래진입가-55보다 작으면 진입
#매도포지션일때 진입
if (MarketPosition == 0 and BX == False) or
(MarketPosition == 0 and BX == true and (C >= EntryPrice(1)+10 or C <= EntryPrice(1)-55)) Or
MarketPosition == -1 Then
{
if 매수조건 Then
Buy();
}
즐거운 하루되세요
> 산수유 님이 쓴 글입니다.
> 제목 : 수식 확인 좀 부탁 드립니다.
> 아래 매수재진입금지 식을 주셔서 그대로 기존식에 적용하였으나 첨부파일처럼 계속 재진입이 되네요. 원인을 다시 확인좀 부탁드립니다.
var : BX(False);
#영업일 변경
if Bdate != Bdate[1] Then
{
BX = False;
}
#청산발생
if TotalTrades > TotalTrades[1] Then
{
#당일 진입한 매수진입이고
#손절(setstoploss)로 청산되면
#BX = true;
if Bdate[BarsSinceEntry(1)] == Bdate and
MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then
{
BX = true;
}
else#아니면 BX는 false
BX = False;
}
#현재 무포지션이고 BX는 false이면 진입
#현재 무포지션이고 BX는 true이면 직전거래 진입가+10포인트보다 크거나 직전거래진입가-55보다 작으면 진입
#매도포지션일때 진입
if (MarketPosition == 0 and BX == False) or
(MarketPosition == 0 and BX == true and (C >= EntryPrice(1)+10 or C <= EntryPrice(1)-55)) Or
MarketPosition == -1 Then
{
if 매수조건 Then
Buy();
}
너무 감사드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 확인 좀 부탁 드립니다.
>
안녕하세요
예스스탁입니다.
1
수식에 보시면 손절매로 언급하셔서 SetStopLoss로 청산된것을 기준으로 작성이 되어
청산명이 StopLoss로 되어 있습니다.
올리신 그림에는 청산명이 Bx1,be1이고 아마 청산시 손실을 본 청산 모두를 지청하시는 것 같습니다.
손실이 발생하면 다음진입을 제한하는 내용으로 변경해 드립니다.
2
var : BX(False);
#영업일 변경
if Bdate != Bdate[1] Then
{
BX = False;
}
#청산발생
if TotalTrades > TotalTrades[1] Then
{
#당일 진입한 매수진입이고
#손절(setstoploss)로 청산되면
#BX = true;
if Bdate[BarsSinceEntry(1)] == Bdate and
MarketPosition(1) == 1 and PositionProfit(1) < 0 Then
{
BX = true;
}
else#아니면 BX는 false
BX = False;
}
#현재 무포지션이고 BX는 false이면 진입
#현재 무포지션이고 BX는 true이면 직전거래 진입가+10포인트보다 크거나 직전거래진입가-55보다 작으면 진입
#매도포지션일때 진입
if (MarketPosition == 0 and BX == False) or
(MarketPosition == 0 and BX == true and (C >= EntryPrice(1)+10 or C <= EntryPrice(1)-55)) Or
MarketPosition == -1 Then
{
if 매수조건 Then
Buy();
}
즐거운 하루되세요
> 산수유 님이 쓴 글입니다.
> 제목 : 수식 확인 좀 부탁 드립니다.
> 아래 매수재진입금지 식을 주셔서 그대로 기존식에 적용하였으나 첨부파일처럼 계속 재진입이 되네요. 원인을 다시 확인좀 부탁드립니다.
var : BX(False);
#영업일 변경
if Bdate != Bdate[1] Then
{
BX = False;
}
#청산발생
if TotalTrades > TotalTrades[1] Then
{
#당일 진입한 매수진입이고
#손절(setstoploss)로 청산되면
#BX = true;
if Bdate[BarsSinceEntry(1)] == Bdate and
MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then
{
BX = true;
}
else#아니면 BX는 false
BX = False;
}
#현재 무포지션이고 BX는 false이면 진입
#현재 무포지션이고 BX는 true이면 직전거래 진입가+10포인트보다 크거나 직전거래진입가-55보다 작으면 진입
#매도포지션일때 진입
if (MarketPosition == 0 and BX == False) or
(MarketPosition == 0 and BX == true and (C >= EntryPrice(1)+10 or C <= EntryPrice(1)-55)) Or
MarketPosition == -1 Then
{
if 매수조건 Then
Buy();
}