커뮤니티
분할진입 문의
2008-08-15 09:25:55
1002
글번호 16686
안녕하세요?
항상 빠르고 정확한 답변에 감사드립니다.
분할진입식을 작성하던중 작동이 이상하여 점검 부탁드립니다. 먼저 제가 작성해본 로직 첨부합니다.
======================
input : 수량(100);
var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0);
if date != date[1] Then{
count = 0;
Bcond1 = 0;
Bcond2 = 0;
Bcond3 = 0;
Bcond4 = 0;
Bcond5 = 0;
}
##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트
if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{
count = count+1;
Bcond1 = 0;
Bcond2 = 0;
Bcond3 = 0;
Bcond4 = 0;
Bcond5 = 0;
}
#진입
if Count < 3 Then{
If bcond3 == 0 and MarketPosition() == 0 and stime >= 090000 And stime < 093000 and sdate==currentdate
and crossup(ma(c,5),ma(c,20)) then {
Buy("a2",Atmarket,def,수량*0.4);
Bcond3 = 1;
}
If bcond3 == 1 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then {
Buy("a2-1",AtSTOP,entryprice*1.1,수량*0.3);
Bcond3 = 2;
}
If bcond3 == 2 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then {
Buy("a2-2",AtSTOP,entryprice*1.2,수량*0.3);
Bcond3 = 3;
}
}
#청산
if MarketPosition==1 and crossdown(ma(c,5),ma(c,20)) Then
ExitLong("c",atmarket);
SetStopEndofday(150400);
==============================
위식을 적용하면서 기본설정에서 피라미딩은 모든진호 진입허용에 체크하였습니다.
첨부된 그림을 보시면 a2 진입(진입가격1.0임)후 1 표시부분에서 분할진입이 발생해야하나 발생하지 않는것을 보실수 있습니다.
제가 다른것을 테스트 해보았더니 진입봉 다음봉에서 분할진입조건을 충족하면 분할진입이 되는것을 발견할수 있었습니다.
그리고 2부분에서는 2차 진입이 발생하여야하나 그렇지 못하고 있습니다.
요청사항.
(1)1부분에서 분할진입이 실행되도록 로직의 부족한부분 수정부탁드립니다.
(2)2부분에서 2차 진입이 발생하도록 로직의 부족한 부분 수정부탁드립니다.
======================
미리 감사드립니다.
- 1. 16871_aaa.jpg (0.09 MB)
답변 1
예스스탁 예스스탁 답변
2008-08-18 10:23:31
안녕하세요? 예스스탁입니다.
문의하신 내용 답변드립니다.
피라미딩 설정에서 '다른진입신호만허용'에 체크하시고 매수진입식 부분을 아래의 내용으로 수정해서 적용하시면 될것으로 판단됩니다.
첫번째 진입(a2-1) 이 발생하지 않은 이유는 a2-1의 if문 조건을 만족한 상태에서 buy문 안의 가격지정조건을 만족하지 않을 경우에도 bcond값은 변경되기 때문에 이후 가격조건을 만족하더라도 bcond값의 변경으로 if문의 조건이 만족하지 않아서 신호가 발생하지 않은 것입니다.
두번째 진입(a2-2)의 경우도 마찬가지 입니다. 따라서 bcond값을 변경시키기 위해서 buy함수 안에서 사용된 가격조건도 추가하셔야 됩니다.
청산이후에 신규 진입이 발생하지 않은것은 첫번째 매수식에서 시간을 093000으로 제한해 놓았기 때문입니다.
감사합니다.
[수정부분]
if Count < 3 Then{
If bcond3 == 0 and MarketPosition() == 0 and stime >= 090000 And stime < 1430000 /*and sdate==currentdate*/
and CrossUp(ma(C,5), ma(c,20)) then {
Buy("a2",Atmarket,def,수량*0.4);
Bcond3 = 1;
}
If bcond3 == 1 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then {
Buy("a2-1",AtSTOP,entryprice*1.1,수량*0.3);
if C >= entryPrice*1.1 then
Bcond3 = 2;
}
If bcond3 == 2 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then {
Buy("a2-2",AtSTOP,entryprice*1.2,수량*0.3);
if C >= entryPrice*1.2 then
Bcond3 = 3;
}
}
> 송아지 님이 쓴 글입니다.
> 제목 : 분할진입 문의
> 안녕하세요?
항상 빠르고 정확한 답변에 감사드립니다.
분할진입식을 작성하던중 작동이 이상하여 점검 부탁드립니다. 먼저 제가 작성해본 로직 첨부합니다.
======================
input : 수량(100);
var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0);
if date != date[1] Then{
count = 0;
Bcond1 = 0;
Bcond2 = 0;
Bcond3 = 0;
Bcond4 = 0;
Bcond5 = 0;
}
##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트
if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{
count = count+1;
Bcond1 = 0;
Bcond2 = 0;
Bcond3 = 0;
Bcond4 = 0;
Bcond5 = 0;
}
#진입
if Count < 3 Then{
If bcond3 == 0 and MarketPosition() == 0 and stime >= 090000 And stime < 093000 and sdate==currentdate
and crossup(ma(c,5),ma(c,20)) then {
Buy("a2",Atmarket,def,수량*0.4);
Bcond3 = 1;
}
If bcond3 == 1 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then {
Buy("a2-1",AtSTOP,entryprice*1.1,수량*0.3);
Bcond3 = 2;
}
If bcond3 == 2 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then {
Buy("a2-2",AtSTOP,entryprice*1.2,수량*0.3);
Bcond3 = 3;
}
}
#청산
if MarketPosition==1 and crossdown(ma(c,5),ma(c,20)) Then
ExitLong("c",atmarket);
SetStopEndofday(150400);
==============================
위식을 적용하면서 기본설정에서 피라미딩은 모든진호 진입허용에 체크하였습니다.
첨부된 그림을 보시면 a2 진입(진입가격1.0임)후 1 표시부분에서 분할진입이 발생해야하나 발생하지 않는것을 보실수 있습니다.
제가 다른것을 테스트 해보았더니 진입봉 다음봉에서 분할진입조건을 충족하면 분할진입이 되는것을 발견할수 있었습니다.
그리고 2부분에서는 2차 진입이 발생하여야하나 그렇지 못하고 있습니다.
요청사항.
(1)1부분에서 분할진입이 실행되도록 로직의 부족한부분 수정부탁드립니다.
(2)2부분에서 2차 진입이 발생하도록 로직의 부족한 부분 수정부탁드립니다.
======================
미리 감사드립니다.
다음글