커뮤니티
지표식 수정 부탁드립니다.
2015-06-03 16:46:05
116
글번호 86731
input : 수량(1);
var : MP(0),BuyEntryPrice(0),OpenPP(0),NP(0);
if MP == 0 Then{
OpenPP = 0;
}
if MP == 0 and crossup(ma(c,5),ma(c,20)) Then{
MP = 1;
BuyEntryPrice = c;
}
if MP == 1 Then{
OpenPP = (C-BuyEntryPrice)*수량;
}
if MP == 1 and CrossDown(ma(c,5),ma(c,20)) Then{
NP = NP+OpenPP;
MP = 0;
}
MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f",open,close,MP,NP,OpenPP);
==================================================================
위의 식에서 MP가 0이면 OpenPP도 0으로 되야하는데..
메시지로그에서 보면 MP가 1에서 0으로 바뀐직후에는 0이아닌 OpenPP값이 한번 나타납니다.
그값을 0으로 만들어 주십시오.
답변 1
예스스탁 예스스탁 답변
2015-06-03 18:54:16
안녕하세요
예스스탁입니다.
수식은 위에서 아래방향으로 읽어 들어 갑니다
데드에서 MP에 0이 할당되는 것보다 OpenPP = 0; 저장이 위에 있으므로
한번더 바로 0으로 변경되지 않고 다음봉에서 변경이 됩니다.
아래 2가지경우와 같이 초기화 하시면 됩니다.
1.
input : 수량(1);
var : MP(0),BuyEntryPrice(0),OpenPP(0),NP(0);
if MP == 0 and crossup(ma(c,5),ma(c,20)) Then{
MP = 1;
BuyEntryPrice = c;
}
if MP == 1 Then{
OpenPP = (C-BuyEntryPrice)*수량;
}
if MP == 1 and CrossDown(ma(c,5),ma(c,20)) Then{
NP = NP+OpenPP;
MP = 0;
OpenPP = 0;
}
2.
input : 수량(1);
var : MP(0),BuyEntryPrice(0),OpenPP(0),NP(0);
if MP == 0 and crossup(ma(c,5),ma(c,20)) Then{
MP = 1;
BuyEntryPrice = c;
}
if MP == 1 Then{
OpenPP = (C-BuyEntryPrice)*수량;
}
if MP == 1 and CrossDown(ma(c,5),ma(c,20)) Then{
NP = NP+OpenPP;
MP = 0;
}
if MP == 0 Then{
OpenPP = 0;
}
즐거운 하루되세요
> 9단 님이 쓴 글입니다.
> 제목 : 지표식 수정 부탁드립니다.
> input : 수량(1);
var : MP(0),BuyEntryPrice(0),OpenPP(0),NP(0);
if MP == 0 Then{
OpenPP = 0;
}
if MP == 0 and crossup(ma(c,5),ma(c,20)) Then{
MP = 1;
BuyEntryPrice = c;
}
if MP == 1 Then{
OpenPP = (C-BuyEntryPrice)*수량;
}
if MP == 1 and CrossDown(ma(c,5),ma(c,20)) Then{
NP = NP+OpenPP;
MP = 0;
}
MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f",open,close,MP,NP,OpenPP);
==================================================================
위의 식에서 MP가 0이면 OpenPP도 0으로 되야하는데..
메시지로그에서 보면 MP가 1에서 0으로 바뀐직후에는 0이아닌 OpenPP값이 한번 나타납니다.
그값을 0으로 만들어 주십시오.