커뮤니티
간단한 질문하나 드립니다. {} 블록설정에 대하여
2013-03-08 11:44:59
267
글번호 60464
{}
이게 실행문 그룹지정이라고 되어 있는데
if MarketPosition == 1 Then{
var1 = highest(h,BarsSinceEntry);
if var1 >= EntryPrice+1.5 Then
exitlong("bx",AtStop,var1-(var1-EntryPrice)*0.04);
}
예를들어 이 수식에서
{}이 설정되어 있는것과 설정되어 있지 않은것이 어떤 차이가 있는지 궁금합니다
더 간단하게는 예스랭귀지 도움문에
If crossup(MACD(10,20),0) Then
{
Buy();
}
이렇게 되어있는것도 있던데 {}이 어떤 기능을 하는지 자세한 설명부탁드려요
답변 1
예스스탁 예스스탁 답변
2013-03-08 14:14:10
안녕하세요
예스스탁입니다.
{}는 if문에 포함되는 실행문이 여러개 일때 사용되게 됩니다.
if MarketPosition == 1 Then{#1
var1 = highest(h,BarsSinceEntry);#2
if var1 >= EntryPrice+1.5 Then #3
exitlong("bx",AtStop,var1-(var1-EntryPrice)*0.04);#4
}
위와 같이 작성하시면
#2,#3,#4가 #1에 모두 귀속되어
#1 조건이 만족할때만 #2,#3,#4가 실행되지만
{}를 제거하면
#1에 귀속되는 것은 #2 하나이고
#3과 #4는 #1조건과는 관계가 없는 내용이 됩니다.
즉 아래와 같이 작성한 것과 같습니다.
if MarketPosition == 1 Then{#1
var1 = highest(h,BarsSinceEntry);#2
if var1 >= EntryPrice+1.5 Then #3
exitlong("bx",AtStop,var1-(var1-EntryPrice)*0.04);#4
아래 내용을 지표로 그려보시면
1번지표는
var1과 var2에는 골든크로스가 발생한 봉의 고가와 저가가
저장되어 다음골든크로스 까지 그리지만
2번지표에서는 var1는 골든크로스가 발생할때만 값이 저장되므로
골든크로스와 골든크로스 사이가 수평으로 그려지지만
var2는 골든크로스 발생할때만 아니라 매봉의 저가를 저장하게 되므로
값이 계속 변경되는 것을 보실 수 있습니다.
#1번지표
if crossup(ma(c,5),ma(c,20)) then{
var1 = H;
var2 = L;
}
plot1(var1);
plot2(var2);
#2번지표
if crossup(ma(c,5),ma(c,20)) then
var1 = H;
var2 = L;
plot1(var1);
plot2(var2);
즐거운 하루되세요
> 반디엄마 님이 쓴 글입니다.
> 제목 : 간단한 질문하나 드립니다. {} 블록설정에 대하여
> {}
이게 실행문 그룹지정이라고 되어 있는데
if MarketPosition == 1 Then{
var1 = highest(h,BarsSinceEntry);
if var1 >= EntryPrice+1.5 Then
exitlong("bx",AtStop,var1-(var1-EntryPrice)*0.04);
}
예를들어 이 수식에서
{}이 설정되어 있는것과 설정되어 있지 않은것이 어떤 차이가 있는지 궁금합니다
더 간단하게는 예스랭귀지 도움문에
If crossup(MACD(10,20),0) Then
{
Buy();
}
이렇게 되어있는것도 있던데 {}이 어떤 기능을 하는지 자세한 설명부탁드려요