커뮤니티

동시처리 방지 방법 좀 알려주세요

프로필 이미지
후따오
2024-05-19 12:57:28
754
글번호 179684
답변완료

첨부 이미지

안녕하세요. 두개의 신호 중 한개는 만족하고 다른 한개는 만족하지 않는데 청산 신호에 의하여 동시에 처리되는 이유를 알고 싶습니다. 조건은 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);