커뮤니티
청산식오류수정
2013-12-09 13:51:27
151
글번호 70264
항상감사드립니다
아래 특정진입조건에 대한(B1/B11,S1/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];
}
################################
##### 삼각가중 이평 #####
################################
VAR: Length1(20),Length2(60);
Variables: TLen1(0),TRIma1(0),TLen2(0),TRIma2(0);
TLen1 = Ceiling((Length1 + 1) * 0.5);
TLen2 = Ceiling((Length2 + 1) * 0.5);
var23 = ma(ma(H, TLen1), TLen1);
var22 = ma(ma(C, TLen1), TLen1);
var21 = ma(ma(L, TLen1), TLen1);
var53 = ma(ma(H, TLen2), TLen2);
var52 = ma(ma(C, TLen2), TLen2);
var51 = ma(ma(L, TLen2), TLen2);
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");
}
##### B1/B11,S1/S11 청산 #####
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
if CrossDown(c,var51) then
exitlong("eL11");
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
if crossup(c,var53) then
exitshort("eS11");
}
답변 1
예스스탁 예스스탁 답변
2013-12-09 16:58:02
안녕하세요
예스스탁입니다.
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];
}
################################
##### 삼각가중 이평 #####
################################
VAR: Length1(20),Length2(60);
Variables: TLen1(0),TRIma1(0),TLen2(0),TRIma2(0);
TLen1 = Ceiling((Length1 + 1) * 0.5);
TLen2 = Ceiling((Length2 + 1) * 0.5);
var23 = ma(ma(H, TLen1), TLen1);
var22 = ma(ma(C, TLen1), TLen1);
var21 = ma(ma(L, TLen1), TLen1);
var53 = ma(ma(H, TLen2), TLen2);
var52 = ma(ma(C, TLen2), TLen2);
var51 = ma(ma(L, TLen2), TLen2);
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");
}
##### B1/B11,S1/S11 청산 #####
if MarketPosition == 1 and (IsEntryName("B1") == true or IsEntryName("B11") == true) Then{
if CrossDown(c,var51) then
exitlong("eL11");
}
if MarketPosition == -1 and (IsEntryName("S1") == true or IsEntryName("S11") == true) Then{
if crossup(c,var53) then
exitshort("eS11");
}
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 청산식오류수정
> 항상감사드립니다
아래 특정진입조건에 대한(B1/B11,S1/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];
}
################################
##### 삼각가중 이평 #####
################################
VAR: Length1(20),Length2(60);
Variables: TLen1(0),TRIma1(0),TLen2(0),TRIma2(0);
TLen1 = Ceiling((Length1 + 1) * 0.5);
TLen2 = Ceiling((Length2 + 1) * 0.5);
var23 = ma(ma(H, TLen1), TLen1);
var22 = ma(ma(C, TLen1), TLen1);
var21 = ma(ma(L, TLen1), TLen1);
var53 = ma(ma(H, TLen2), TLen2);
var52 = ma(ma(C, TLen2), TLen2);
var51 = ma(ma(L, TLen2), TLen2);
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");
}
##### B1/B11,S1/S11 청산 #####
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
if CrossDown(c,var51) then
exitlong("eL11");
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
if crossup(c,var53) then
exitshort("eS11");
}