커뮤니티
수정 부탁드려요
2013-02-13 20:26:50
249
글번호 59446
보네주신 수식인데요
매수는 무조건 양선에
매도는 무조건 음봉 조건 추가 부탁드립니다
추가 진입하는 것들두요
그리고 추가 진입은 최초 진입한 b1(s1)가격보다 높은(낮은) 가격일때만
추가 진입하는 걸루요
그리고 수식 실행을 해보니까
당일 진입신호가 두개가 발생하는 경우도 있습니다 b1,b2(s1,s2) 이런경우 b1(s1) 하나만 진입할수
있게 부탁드립니다
input : ATRP(15),EN(1.5),XN(2);
var : ATRV(0);
var1 = highest(H,20);
var2 = highest(H,55);
var3 = lowest(L,10);
var4 = lowest(L,20);
var11 = Lowest(H,20);
var12 = Lowest(H,55);
var13 = highest(L,10);
var14 = highest(L,20);
ATRV = atr(ATRP);
if MarketPosition <= 0 and CrossUp(c,var1[1]) Then
buy("b1");
if MarketPosition <= 0 and CrossUp(c,var2[1]) Then
buy("b2");
if MarketPosition == 1 Then{
if CurrentEntries == 1 Then{
value1 = EntryPrice+ATRV*EN;
buy("bb",AtStop,value1);
}
if CurrentEntries == 2 then{
value2 = value1+ATRV*EN;
buy("bbb",AtStop,value2);
}
if CrossDown(c,var3[1]) Then
exitlong("b1x");
if CrossDown(c,var4[1]) Then
exitlong("b2x");
if CurrentEntries == 2 Then
exitlong("bx1",AtStop,value1-ATRV*XN);
if CurrentEntries == 2 Then
exitlong("bx2",AtStop,value2-ATRV*XN);
}
if MarketPosition >= 0 and CrossDown(c,var11[1]) Then
Sell("s1");
if MarketPosition >= 0 and CrossDown(c,var12[1]) Then
Sell("s2");
if MarketPosition == -1 Then{
if CurrentEntries == 1 Then{
value11 = EntryPrice-ATRV*EN;
sell("ss",AtStop,value1);
}
if CurrentEntries == 2 then{
value12 = value1-ATRV*EN;
sell("sss",AtStop,value2);
}
if CrossUp(c,var13[1]) Then
ExitShort("s1x");
if CrossUp(c,var14[1]) Then
ExitShort("s2x");
if CurrentEntries == 2 Then
ExitShort("sx1",AtStop,value11+ATRV*XN);
if CurrentEntries == 2 Then
ExitShort("sx2",AtStop,value12+ATRV*XN);
}
답변 1
예스스탁 예스스탁 답변
2013-02-14 09:19:06
안녕하세요
예스스탁입니다.
추가진입하는 부분은 신호타입은 atstop으로
봉이 완성되면 다음봉의 시세가 지정한 가격이상이나 이하의 시세가
발생하면 봉미완성시에 신호가 발생하는 타입이라
신호발생봉이 양봉/음봉인지 파악하려면 봉완성시로 종가기준으로
신호가 발생되게 작성해야 합니다.
1번식은 추가매수시 현재봉이 양봉이면 다음봉의 시세를 감시하고
추가매도시 현재봉이 음봉이면 다음봉의 시세를 감시하게 작성한 식입니다.
2번식은 봉완성시로 모두 판단하도록 작성된 식입니다.
2개의 식 모두 b1과 b2, s1과 s2는 하나로 통합했습니다.
1번식
input : ATRP(15),EN(1.5),XN(2);
var : ATRV(0);
var1 = highest(H,20);
var2 = highest(H,55);
var3 = lowest(L,10);
var4 = lowest(L,20);
var11 = Lowest(H,20);
var12 = Lowest(H,55);
var13 = highest(L,10);
var14 = highest(L,20);
ATRV = atr(ATRP);
if MarketPosition <= 0 and (CrossUp(c,var1[1]) or CrossUp(c,var2[1])) and C > O Then
buy("b");
if MarketPosition == 1 Then{
if CurrentEntries == 1 and C > O and crossup(c,EntryPrice+ATRV*EN) Then{
value1 = c;
buy("bb");
}
if CurrentEntries == 2 and C > O and crossup(c,value1+ATRV*EN) then{
value2 = c;
buy("bbb");
}
if CrossDown(c,var3[1]) Then
exitlong("b1x");
if CrossDown(c,var4[1]) Then
exitlong("b2x");
if CurrentEntries == 2 Then
exitlong("bx1",AtStop,value1-ATRV*XN);
if CurrentEntries == 2 Then
exitlong("bx2",AtStop,value2-ATRV*XN);
}
if MarketPosition >= 0 and (CrossDown(c,var11[1]) or CrossDown(c,var12[1])) and C < O Then
Sell("s");
if MarketPosition == -1 Then{
if CurrentEntries == 1 and C < O and CrossDown(c,EntryPrice-ATRV*EN) Then{
value11 = c;
sell("ss");
}
if CurrentEntries == 2 and C < O and CrossDown(c,value1-ATRV*EN) then{
value12 = c;
sell("sss");
}
if CrossUp(c,var13[1]) Then
ExitShort("s1x");
if CrossUp(c,var14[1]) Then
ExitShort("s2x");
if CurrentEntries == 2 Then
ExitShort("sx1",AtStop,value11+ATRV*XN);
if CurrentEntries == 2 Then
ExitShort("sx2",AtStop,value12+ATRV*XN);
}
2번식
input : ATRP(15),EN(1.5),XN(2);
var : ATRV(0);
var1 = highest(H,20);
var2 = highest(H,55);
var3 = lowest(L,10);
var4 = lowest(L,20);
var11 = Lowest(H,20);
var12 = Lowest(H,55);
var13 = highest(L,10);
var14 = highest(L,20);
ATRV = atr(ATRP);
if MarketPosition <= 0 and (CrossUp(c,var1[1]) or CrossUp(c,var2[1])) and C > O Then
buy("b");
if MarketPosition == 1 Then{
if CurrentEntries == 1 and C > O Then{
value1 = EntryPrice+ATRV*EN;
buy("bb",AtStop,value1);
}
if CurrentEntries == 2 and C > O then{
value2 = value1+ATRV*EN;
buy("bbb",AtStop,value2);
}
if CrossDown(c,var3[1]) Then
exitlong("b1x");
if CrossDown(c,var4[1]) Then
exitlong("b2x");
if CurrentEntries == 2 Then
exitlong("bx1",AtStop,value1-ATRV*XN);
if CurrentEntries == 2 Then
exitlong("bx2",AtStop,value2-ATRV*XN);
}
if MarketPosition >= 0 and (CrossDown(c,var11[1]) or CrossDown(c,var12[1])) and C < O Then
Sell("s");
if MarketPosition == -1 Then{
if CurrentEntries == 1 and C < O Then{
value11 = EntryPrice-ATRV*EN;
sell("ss",AtStop,value1);
}
if CurrentEntries == 2 and C < O then{
value12 = value1-ATRV*EN;
sell("sss",AtStop,value2);
}
if CrossUp(c,var13[1]) Then
ExitShort("s1x");
if CrossUp(c,var14[1]) Then
ExitShort("s2x");
if CurrentEntries == 2 Then
ExitShort("sx1",AtStop,value11+ATRV*XN);
if CurrentEntries == 2 Then
ExitShort("sx2",AtStop,value12+ATRV*XN);
}
즐거운 하루되세요
> HI_knp116 님이 쓴 글입니다.
> 제목 : 수정 부탁드려요
> 보네주신 수식인데요
매수는 무조건 양선에
매도는 무조건 음봉 조건 추가 부탁드립니다
추가 진입하는 것들두요
그리고 추가 진입은 최초 진입한 b1(s1)가격보다 높은(낮은) 가격일때만
추가 진입하는 걸루요
그리고 수식 실행을 해보니까
당일 진입신호가 두개가 발생하는 경우도 있습니다 b1,b2(s1,s2) 이런경우 b1(s1) 하나만 진입할수
있게 부탁드립니다
input : ATRP(15),EN(1.5),XN(2);
var : ATRV(0);
var1 = highest(H,20);
var2 = highest(H,55);
var3 = lowest(L,10);
var4 = lowest(L,20);
var11 = Lowest(H,20);
var12 = Lowest(H,55);
var13 = highest(L,10);
var14 = highest(L,20);
ATRV = atr(ATRP);
if MarketPosition <= 0 and CrossUp(c,var1[1]) Then
buy("b1");
if MarketPosition <= 0 and CrossUp(c,var2[1]) Then
buy("b2");
if MarketPosition == 1 Then{
if CurrentEntries == 1 Then{
value1 = EntryPrice+ATRV*EN;
buy("bb",AtStop,value1);
}
if CurrentEntries == 2 then{
value2 = value1+ATRV*EN;
buy("bbb",AtStop,value2);
}
if CrossDown(c,var3[1]) Then
exitlong("b1x");
if CrossDown(c,var4[1]) Then
exitlong("b2x");
if CurrentEntries == 2 Then
exitlong("bx1",AtStop,value1-ATRV*XN);
if CurrentEntries == 2 Then
exitlong("bx2",AtStop,value2-ATRV*XN);
}
if MarketPosition >= 0 and CrossDown(c,var11[1]) Then
Sell("s1");
if MarketPosition >= 0 and CrossDown(c,var12[1]) Then
Sell("s2");
if MarketPosition == -1 Then{
if CurrentEntries == 1 Then{
value11 = EntryPrice-ATRV*EN;
sell("ss",AtStop,value1);
}
if CurrentEntries == 2 then{
value12 = value1-ATRV*EN;
sell("sss",AtStop,value2);
}
if CrossUp(c,var13[1]) Then
ExitShort("s1x");
if CrossUp(c,var14[1]) Then
ExitShort("s2x");
if CurrentEntries == 2 Then
ExitShort("sx1",AtStop,value11+ATRV*XN);
if CurrentEntries == 2 Then
ExitShort("sx2",AtStop,value12+ATRV*XN);
}
다음글
이전글