커뮤니티
시스템식수정 2
2013-12-05 00:25:39
147
글번호 70143
항상 감사드립니다
질문 33728 관련입니다
아래시스템식을 1분봉에 적용해보니 신호가 나오질않습니다
시스템에 구현하고자 하는것은 시초가에 신호가 나오는것입니다..
B1,S1 을 나오게 하면 B11,S11이 안나오는것 같습니다
수정부탁드립니다
var : cnt(0),count(0);
var1 = ma(c,9);
var2 = ma(c,26);
if CrossDown(var1,var2) Then
value1 = var2;
if var2 < value1 Then
value1 = var2; #매도라인#
if CrossUp(var1,var2) Then
value2 = var2;
if var2 > value2 Then
value2 = var2; #매수라인#
value3 = var2;
if date != date[1] Then{
value11 = value1[1];
value21 = value2[1];
value31 = value3[1];
}
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
/* if (count == 0 and dayopen > value2 and value1==value11) Then
buy("B1");*/
if (stime == 151500 and NextBarOpen > value2) Then
buy("B11");
/* if (count == 0 and DayOpen < value1 and value2==value21) Then
sell("S1");*/
if (stime == 151500 and NextBarOpen < value1) Then
sell("S11");
if count == 1 Then{
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Condition3 = false;
if MarketPosition == 1 and Condition3 == false and value2 > value1 and value1 == value1[1] Then{
value7 = value1;
Condition3 = True;
}
}
if count >= 1 and Condition3 == true Then{
if crossup(c,value7) Then
buy("Bb1");
if CrossDown(c,value7) Then
sell("Bs1");
}
if count == 1 Then{
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Condition2 = false;
if MarketPosition == -1 and Condition2 == false and value2 >= value1 and value2 == value2[1] Then{
value6 = value2;
Condition2 = true;
}
}
if count >= 1 and Condition2 == true Then{
if crossup(c,value6) Then
buy("Sb1");
if CrossDown(c,value6) Then
sell("Ss1");
}
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
CrossDown(c,value3);
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
crossup(c,value3);
}
답변 1
예스스탁 예스스탁 답변
2013-12-05 10:36:39
안녕하세요
예스스탁입니다.
수정한 식입니다. 신호의 타입을 잘못설정했습니다.
var : cnt(0),count(0);
var1 = ma(c,9);
var2 = ma(c,26);
if CrossDown(var1,var2) Then
value1 = var2;
if var2 < value1 Then
value1 = var2; #매도라인#
if CrossUp(var1,var2) Then
value2 = var2;
if var2 > value2 Then
value2 = var2; #매수라인#
value3 = var2;
if date != date[1] Then{
value11 = value1[1];
value21 = value2[1];
value31 = value3[1];
}
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
/* if (count == 0 and dayopen > value2 and value1==value11) Then
buy("B1");*/
if (stime == 151500 and NextBarOpen > value2) Then
buy("B11",AtMarket);
/* if (count == 0 and DayOpen < value1 and value2==value21) Then
sell("S1");*/
if (stime == 151500 and NextBarOpen < value1) Then
sell("S11",AtMarket);
if count == 1 Then{
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Condition3 = false;
if MarketPosition == 1 and Condition3 == false and value2 > value1 and value1 == value1[1] Then{
value7 = value1;
Condition3 = True;
}
}
if count >= 1 and Condition3 == true Then{
if crossup(c,value7) Then
buy("Bb1");
if CrossDown(c,value7) Then
sell("Bs1");
}
if count == 1 Then{
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Condition2 = false;
if MarketPosition == -1 and Condition2 == false and value2 >= value1 and value2 == value2[1] Then{
value6 = value2;
Condition2 = true;
}
}
if count >= 1 and Condition2 == true Then{
if crossup(c,value6) Then
buy("Sb1");
if CrossDown(c,value6) Then
sell("Ss1");
}
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
CrossDown(c,value3);
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
crossup(c,value3);
}
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 시스템식수정 2
> 항상 감사드립니다
질문 33728 관련입니다
아래시스템식을 1분봉에 적용해보니 신호가 나오질않습니다
시스템에 구현하고자 하는것은 시초가에 신호가 나오는것입니다..
B1,S1 을 나오게 하면 B11,S11이 안나오는것 같습니다
수정부탁드립니다
var : cnt(0),count(0);
var1 = ma(c,9);
var2 = ma(c,26);
if CrossDown(var1,var2) Then
value1 = var2;
if var2 < value1 Then
value1 = var2; #매도라인#
if CrossUp(var1,var2) Then
value2 = var2;
if var2 > value2 Then
value2 = var2; #매수라인#
value3 = var2;
if date != date[1] Then{
value11 = value1[1];
value21 = value2[1];
value31 = value3[1];
}
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
/* if (count == 0 and dayopen > value2 and value1==value11) Then
buy("B1");*/
if (stime == 151500 and NextBarOpen > value2) Then
buy("B11");
/* if (count == 0 and DayOpen < value1 and value2==value21) Then
sell("S1");*/
if (stime == 151500 and NextBarOpen < value1) Then
sell("S11");
if count == 1 Then{
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Condition3 = false;
if MarketPosition == 1 and Condition3 == false and value2 > value1 and value1 == value1[1] Then{
value7 = value1;
Condition3 = True;
}
}
if count >= 1 and Condition3 == true Then{
if crossup(c,value7) Then
buy("Bb1");
if CrossDown(c,value7) Then
sell("Bs1");
}
if count == 1 Then{
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Condition2 = false;
if MarketPosition == -1 and Condition2 == false and value2 >= value1 and value2 == value2[1] Then{
value6 = value2;
Condition2 = true;
}
}
if count >= 1 and Condition2 == true Then{
if crossup(c,value6) Then
buy("Sb1");
if CrossDown(c,value6) Then
sell("Ss1");
}
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
CrossDown(c,value3);
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
crossup(c,value3);
}