첨부 이미지
그림1
안녕하세요.
두개의 신호 중 한개는 만족하고 다른 한개는 만족하지 않는데 청산 신호에 의하여 동시에
처리되는 이유를 알고 싶습니다. 조건은 5포인트 수익이 날 때 청산해야되는데 1개는 수익 한개는 손실이 발생했습니다. 어떻게 처리해야할까요?
매수 청산 수식은 아래와 같습니다.
If BarsSinceEntry>5 and CountIF(CrossUp(Value11,Value12),BarsSinceEntry)>=1 and CrossDown(C,Value12) Then ExitShort("ES3",AtLimit,EntryPrice-6);
답변 1
예스스탁
예스스탁 답변
2024-05-20 14:32:47
안녕하세요
예스스탁입니다.
1
청산함수는 별도로 수량을 지정하거나 진입명을 지정하지 않으면
진입된 포지션 전량 청산입니다.
2
진입가를 리턴하는 함수중
entryprice는 첫진입의 가격,
LatestEntryPrice(0)의 최종진입가격 ,
avgentryprice는 평단가입니다.
진입을 여러번하고 진입명별로 혹은 진입발생 순으로
조건을 지정해서 청산을 하고자 하시면
진입이 발생시에 각 진입별로 가격이나 수량등을 저장해서 이용하셔야 합니다.
3
아래 내용 참고하시기 바랍니다.
각 발생한 진입명별로 진입가격을 저장해 청산에서 진입가로 지정하고
청산함수에 진입명을 지정해 해당 진입이 있을때만 청산하게 작성한 식입니다.
var : SE1(0),SE2(0),SE3(0),SE4(0),SE5(0);
if MarketPosition == -1 Then
{
if (MarketPosition != MarketPosition[1]) or (CurrentContracts > CurrentContracts[1]) Then
{
if LatestEntryName(0) == "S2" Then
SE1 = LatestEntryPrice(0);
if LatestEntryName(0) == "S2" Then
SE2 = LatestEntryPrice(0);
if LatestEntryName(0) == "S2" Then
SE3 = LatestEntryPrice(0);
if LatestEntryName(0) == "S2" Then
SE4 = LatestEntryPrice(0);
if LatestEntryName(0) == "S5" Then
SE5 = LatestEntryPrice(0);
}
If BarsSinceEntry>5 and
CountIF(CrossUp(Value11,Value12),BarsSinceEntry)>=1 and
CrossDown(C,Value12) and SE1 > 0 Then
ExitShort("ES3",AtLimit,SE2-6,"S2");
If BarsSinceEntry>5 and
CountIF(CrossUp(Value11,Value12),BarsSinceEntry)>=1 and
CrossDown(C,Value12) and SE5 > 0 Then
ExitShort("ES5",AtLimit,SE5-6,"S5");
}
Else
{
SE1 = 0;
SE2 = 0;
SE3 = 0;
SE4 = 0;
SE5 = 0;
}
즐거운 하루되세요
> 후따오 님이 쓴 글입니다.
> 제목 : 동시처리 방지 방법 좀 알려주세요
> 안녕하세요.
두개의 신호 중 한개는 만족하고 다른 한개는 만족하지 않는데 청산 신호에 의하여 동시에
처리되는 이유를 알고 싶습니다. 조건은 5포인트 수익이 날 때 청산해야되는데 1개는 수익 한개는 손실이 발생했습니다. 어떻게 처리해야할까요?
매수 청산 수식은 아래와 같습니다.
If BarsSinceEntry>5 and CountIF(CrossUp(Value11,Value12),BarsSinceEntry)>=1 and CrossDown(C,Value12) Then ExitShort("ES3",AtLimit,EntryPrice-6);