커뮤니티
피라미딩 관련
2013-08-21 19:50:43
117
글번호 66691
매번 답변해주셔서 감사합니다.
문의사항이 있어서 Q&A에 남깁니다.
SetStopProfittarget(0.10,PointStop);
SetStopLoss(0.10,PointStop);
진입후 강제청산을 하는 수식을 피라미딩을 2로 설정하여, 2개 모두 진입하였을 경우에,
진입1개가 손실로 청산이 되면, 남은 한개를 바로 청산해버릴 수 있나요?
진입 1개가 이익으로 청산이 나면, 남은 한개는 포지션을 유지하고요.
답변 1
예스스탁 예스스탁 답변
2013-08-22 09:51:15
안녕하세요
예스스탁입니다.
SetStopProfittarget(0.10,PointStop);
SetStopLoss(0.10,PointStop);
강제청산함수는 각 진입별로 발동을 합니다.
피라미딩으로 2번 진입하면 각 진입별 진입가에서 0.1 포인트씩 손실이나
수익이 발생하면 청산을 합니다.
진입중에 하나가 손실청산되면 모두 같이 청산하기 위해서는
수식에서 if문과 결합해서 exitlong, exitshort함수를 이용해서 청산해야 합니다.
모든 포지션 함수는 항상 첫진입을 기준으로 값을 리턴하므로
추가로 진입된 부분은 따로 진입가를 변수에 저장하고 사용해야 합니다.
즉 개별진입별로 손절이나 목표수익을 설정하면 강제청산함수를 이용하고
그렇치 않으면 모두 수식으로 풀어 작성하셔야 합니다.
if MarketPosition == 1 Then{
#두번째 진입의 진입가격
if CurrentContracts > CurrentContracts[1] and CurrentEntries == 2 Then
var1 = C[1];//두번째 진입의 진입가격
exitlong("Bloss1",AtStop,EntryPrice-0.1);
if CurrentEntries == 2 Then
exitlong("Bloss2",AtStop,var1-0.1);
}
if MarketPosition == -1 Then{
#두번째 진입의 진입가격
if CurrentContracts > CurrentContracts[1] and CurrentEntries == 2 Then
var2 = C[1];
ExitShort("sloss1",AtStop,EntryPrice+0.1);
if CurrentEntries == 2 Then
ExitShort("sloss2",AtStop,var2+0.1);
}
SetStopProfittarget(0.10,PointStop);
추가진입이 onclose일 경우는 수량이 증가할때 C[1]를 저장하시면 되며
atmarket일 경우는 수량이 증가할때 O를 저장하시면 되며
atstop이나 atlimit일 경우는 따로 가격을 사용자분이 산정해서 지정하셔야 합니다.
강제청산 함수하고는 다르게
포지션에 대한 진입을 if문으로 인식하고 가격을 감시해야 하므로
진입이 onclose일경우 진입봉 다음봉부터 포지션이 인식되므로
진입신호가 난 봉 다음다음봉부터 신호가 발생합니다.
atmarket이나 atstop, atlimit의 경우 진입신호봉 다음봉 부터
신호가 발생할수 있습니다.
즐거운 하루되세요
> 파쿠3 님이 쓴 글입니다.
> 제목 : 피라미딩 관련
> 매번 답변해주셔서 감사합니다.
문의사항이 있어서 Q&A에 남깁니다.
SetStopProfittarget(0.10,PointStop);
SetStopLoss(0.10,PointStop);
진입후 강제청산을 하는 수식을 피라미딩을 2로 설정하여, 2개 모두 진입하였을 경우에,
진입1개가 손실로 청산이 되면, 남은 한개를 바로 청산해버릴 수 있나요?
진입 1개가 이익으로 청산이 나면, 남은 한개는 포지션을 유지하고요.
다음글