커뮤니티
초보 수식질문드립니다...
2008-11-04 08:47:55
868
글번호 17851
Input : E1(25), E2(40), E3(60), E1Ex(70), E2Ex(100), E3Ex(115) ;
if condition1 = true Then{
If DayIndex() == E1 Then
Sell("S1");
If DayIndex() == E2 Then
Sell("S2");
If DayIndex() == E3 Then
Sell("S3");
}
if condition1 = false Then{
If DayIndex() == E1 Then
Buy("B1");
If DayIndex() == E2 Then
Buy("B2");
If DayIndex() == E3 Then
Buy("B3");
}
/**** 청산식 ****/
If IsEntryName("S1") Then {
If DayIndex() == E1Ex Then
ExitShort("ExS-S1");
SetStopLoss(1,PointStop);}
If IsEntryName("S2") Then {
If DayIndex() == E2Ex Then
ExitShort("ExS-S2");
SetStopLoss(1,PointStop);}
If IsEntryName("S3") Then {
If DayIndex() == E3Ex Then
ExitShort("ExS-S3");
SetStopLoss(1,PointStop);}
//==========================================================//
If IsEntryName("B1") Then {
If DayIndex()== E1Ex Then
ExitLong("ExL-B1");
SetStopLoss(1,PointStop);}
If IsEntryName("B2") Then {
If DayIndex() == E2Ex Then
ExitLong("ExL-B2");
SetStopLoss(1,PointStop); }
If IsEntryName("B3") Then {
If DayIndex() == E3Ex Then
ExitLong("ExL-B3");
SetStopLoss(1,PointStop);}
안녕하세요. 항상 친절하고 자세한 답변에 감사드리고 있습니다..
질문 1. 위 수식에서 진입 B1, B2, B3 또는 S1,S2,S3 에 따라 청산 시점을 달리하는데
둘다 모두 첫번째 청산식에서 ("ExS-S1", "ExL-B1") 한꺼번에 청산됩니다. 어떤점이 잘못되었을까요?
질문2. 피라미딩 주문을 허용 할려면 속성창에서 체크를 하고 있는데 이걸 수식으로 표현할수 있을까요?
왕초보라서 조금 자세한 설명 부탁드립니다. 정말 감사합니다. 즐거운 하루되세요
답변 1
예스스탁 예스스탁 답변
2008-11-04 10:34:43
안녕하세요
예스스탁입니다.
피라미딩은 수식으로 그 옵션을 제어할 수 없습니다.
또한 피라미딩으로 여러 진입이 들어 갈 경우
IsEntryName등 포지션 함수는 그 첫번째 진입만을 기억합니다.
즉 피라미딩으로 B1,B1,B3로 차례로 진입하면 isentryname은 B1만을 기억하며.
그러므로 ("ExS-S1", "ExL-B1")만으로만 청산이 됩니다.
이경에는 isentryname함수로는 컨트롤 할 수 없습니다.
피라미딩은 중복진입과 관련된 옵션이므로 분할하여 청산하기 위해서는
식에따라 다르게 처리해야 합니다.
Input : E1(25), E2(40), E3(60), E1Ex(70), E2Ex(100), E3Ex(115) ;
if condition1 = true Then{
If DayIndex() == E1 Then
Sell("S1",onclose,def,1);
If DayIndex() == E2 Then
Sell("S2",onclose,def,1);
If DayIndex() == E3 Then
Sell("S3",onclose,def,1);
}
if condition1 = false Then{
If DayIndex() == E1 Then
Buy("B1",onclose,def,1);
If DayIndex() == E2 Then
Buy("B2",onclose,def,1);
If DayIndex() == E3 Then
Buy("B3",onclose,def,1);
}
/**** 청산식 ****/
If MarketPosition() == -1 Then {
If DayIndex() == E1Ex Then
ExitShort("ExS-S1",onclose,def,"",1,1);
If DayIndex() == E2Ex Then
ExitShort("ExS-S2",onclose,def,"",1,1);
If DayIndex() == E3Ex Then
ExitShort("ExS-S3",onclose,def,"",1,1);
}
If MarketPosition() == 1 Then {
If DayIndex() == E1Ex Then
ExitLong("ExL-B1",onclose,def,"",1,1);
If DayIndex() == E2Ex Then
ExitLong("ExL-B2",onclose,def,"",1,1);
If DayIndex() == E3Ex Then
ExitLong("ExL-B3",onclose,def,"",1,1);
}
SetStopLoss(1,PointStop);
분할진입시 분할청산되게 작성한 식입니다.
참고하시기 바랍니다.
즐거운 하루되세요
> 옵션 님이 쓴 글입니다.
> 제목 : 초보 수식질문드립니다...
> Input : E1(25), E2(40), E3(60), E1Ex(70), E2Ex(100), E3Ex(115) ;
if condition1 = true Then{
If DayIndex() == E1 Then
Sell("S1");
If DayIndex() == E2 Then
Sell("S2");
If DayIndex() == E3 Then
Sell("S3");
}
if condition1 = false Then{
If DayIndex() == E1 Then
Buy("B1");
If DayIndex() == E2 Then
Buy("B2");
If DayIndex() == E3 Then
Buy("B3");
}
/**** 청산식 ****/
If IsEntryName("S1") Then {
If DayIndex() == E1Ex Then
ExitShort("ExS-S1");
SetStopLoss(1,PointStop);}
If IsEntryName("S2") Then {
If DayIndex() == E2Ex Then
ExitShort("ExS-S2");
SetStopLoss(1,PointStop);}
If IsEntryName("S3") Then {
If DayIndex() == E3Ex Then
ExitShort("ExS-S3");
SetStopLoss(1,PointStop);}
//==========================================================//
If IsEntryName("B1") Then {
If DayIndex()== E1Ex Then
ExitLong("ExL-B1");
SetStopLoss(1,PointStop);}
If IsEntryName("B2") Then {
If DayIndex() == E2Ex Then
ExitLong("ExL-B2");
SetStopLoss(1,PointStop); }
If IsEntryName("B3") Then {
If DayIndex() == E3Ex Then
ExitLong("ExL-B3");
SetStopLoss(1,PointStop);}
안녕하세요. 항상 친절하고 자세한 답변에 감사드리고 있습니다..
질문 1. 위 수식에서 진입 B1, B2, B3 또는 S1,S2,S3 에 따라 청산 시점을 달리하는데
둘다 모두 첫번째 청산식에서 ("ExS-S1", "ExL-B1") 한꺼번에 청산됩니다. 어떤점이 잘못되었을까요?
질문2. 피라미딩 주문을 허용 할려면 속성창에서 체크를 하고 있는데 이걸 수식으로 표현할수 있을까요?
왕초보라서 조금 자세한 설명 부탁드립니다. 정말 감사합니다. 즐거운 하루되세요
다음글
이전글