커뮤니티
수식문의
2018-07-29 18:33:44
140
글번호 120964
안녕하세요
하기 수식 문의 드립니다.
1. MACD oscillator 로 진입을 하고 싶습니다.
0 보다 높아지면 매수 진입, 0보다 낮아지면 매도 진입
피라미딩 방법으로 진입하고 싶습니다. 가격이 올라가거나 떨어지거나
순서대로 바뀌게 되니 3가지 시간대로 차례차례 진입하고 싶습니다. :
data1 : 60분, data2 : 30분 , data3 : 10분
조건 :
매수 진입은 볼린져 밴드 중앙이평 하단에서만 oscillator 가 0 이상으로 바뀌었을때만, 진입하게 부탁드립니다. 밴드 중앙이평 상단에서는 매수진입 금지입니다.
매도 진입은 볼린져 밴드 중앙이평 상단에서만 oscillator 가 0 이하로 바뀌었을때만, 진입하게 부탁드립니다. 벤드 중앙이평 하단에서는 매도진입 금지입니다.
익절청산 조건은 : data 1 은 30틱, data 2 는 20틱, data 3 는 10틱으로 부탁드립니다.
조정가능하게 수식 부탁드립니다.
손절청산 조건은 없습니다.
추가로 궁금한게 있는데, 예를 들어 크루드 오일로 data 1 이 70불에 매도를 들어가고
data2 가 69.90 에 매도를 들어갔으면 청산은 제가 말씀드린 각각의 틱수에서 청산이 되는지요? 아니면 청산방식에서 선입선출이 적용되는지요?
제가 바라는 것과 달리 69.90에 진입한 것이 30틱 후에 청산되고 70에 진입한것이 20틱 후에
청산 되는 것인지요?
2. 가격이 현재 볼린져 밴드 하단에 몸통이나 꼬리가 걸쳐져 있고,
앞봉은 음봉이고, 앞봉보다 꼬리는 상관없이 앞봉의 몸통대비 몸통만 큰 양봉이 발생하면,
매수 진입부탁드립니다.
반대로 가격이 현재 볼린져 밴드 상단에 몸통이나 꼬리가 걸쳐져 있고,
앞봉은 양봉이고, 앞봉보다 꼬리는 상관없이 앞봉의 몸통대비 몸통만 큰 음봉이 발생하면,
매도 진입부탁드립니다.
data2 와 data 3는 지표로 챠트에 표시만 되게끔 부탁드립니다.
봉색깔이 노란색으로 되게 부탁드립니다.
3. 첨부된 캡쳐 파일처럼
MACD oscillator 가 0 이상으로 바뀌는 첫번째 봉이, 볼린져 상단을 넘어서서 완성이되고
다음봉이 음봉이 발생하면, 음봉발생 후 매도 진입 부탁드립니다.
반대로도 마찬가지로, MACD oscillator가 0이하로 바뀌는 첫번째 봉이, 볼린져 하단을 넘어서서 완성이되고 다음봉이 양봉이 발생하면, 양봉발생 후 매수 진입 부탁드립니다.
data2와 data3는 지표로 챠트에 표시만 되게끔 부탁드립니다.
봉색갈을 연두색으로 되게 부탁드립니다.
감사합니다.
- 1. 121565_캡처.PNG (0.00 MB)
답변 1
예스스탁 예스스탁 답변
2018-07-30 11:34:01
안녕하세요
예스스탁입니다.
1
수식은 모두 기본차트 기준입니다.
기본차트 봉 완성시 조건체크해 신호가 발생합니다.
참조데이터 봉완성시로는 신호가 발생하지 않습니다.
data1,data2,data3 진입별로 이름을 지정하고
청산은 지정한 진입명에 대해 청산하게 작성했습니다.
input : short1(12),long1(26),sig1(9),P1(20);
input : short2(12),long2(26),sig2(9),P2(20);
input : short3(12),long3(26),sig3(9),P3(20);
var : MACDO1(0,data1),bbmd1(0,data1),BP1(0,data1),SP1(0,data1);
var : MACDO2(0,data2),bbmd2(0,data2),BP2(0,data2),SP2(0,data2);
var : MACDO3(0,data3),bbmd3(0,data3),BP3(0,data3),SP3(0,data3);
MACDO1 = data1(MACD_OSC(Short1,long1,sig1));
MACDO2 = data2(MACD_OSC(Short2,long2,sig2));
MACDO3 = data3(MACD_OSC(Short3,long3,sig3));
BBmd1 = data1(ma(C,P1));
BBmd2 = data1(ma(C,P2));
BBmd3 = data1(ma(C,P3));
if (MarketPosition == 0 or (MarketPosition == 1 and var1 == 0)) and
data1(C< bbmd1 and CrossUp(MACDO1,0)) Then
buy("b1");
if (MarketPosition == 0 or (MarketPosition == 1 and var2 == 0)) and
data2(C< bbmd2 and CrossUp(MACDO2,0)) Then
buy("b2");
if (MarketPosition == 0 or (MarketPosition == 1 and var3 == 0)) and
data3(C< bbmd3 and CrossUp(MACDO3,0)) Then
buy("b3");
if MarketPosition == 1 Then{
if LatestEntryName == "b1" and CurrentContracts > CurrentContracts[1] Then
BP1 = LatestEntryPrice(0);
if LatestEntryName == "b2" and CurrentContracts > CurrentContracts[1] Then
BP2 = LatestEntryPrice(0);
if LatestEntryName == "b3" and CurrentContracts > CurrentContracts[1] Then
BP3 = LatestEntryPrice(0);
if BP1 > 0 Then
ExitLong("bx1",Atlimit,BP1+PriceScale*30,"b1");
if BP2 > 0 Then
ExitLong("bx2",Atlimit,BP2+PriceScale*20,"b2");
if BP3 > 0 Then
ExitLong("bx3",Atlimit,BP3+PriceScale*10,"b3");
}
Else
{
BP1 = 0;
BP2 = 0;
BP3 = 0;
}
if data1(C> bbmd1 and CrossDown(MACDO1,0)) Then
Sell("s1");
if data2(C> bbmd2 and CrossDown(MACDO2,0)) Then
Sell("s2");
if data3(C> bbmd3 and CrossDown(MACDO3,0)) Then
Sell("s3");
if MarketPosition == -1 Then{
if LatestEntryName == "s1" and CurrentContracts > CurrentContracts[1] Then
SP1 = LatestEntryPrice(0);
if LatestEntryName == "s2" and CurrentContracts > CurrentContracts[1] Then
SP2 = LatestEntryPrice(0);
if LatestEntryName == "s3" and CurrentContracts > CurrentContracts[1] Then
SP3 = LatestEntryPrice(0);
if SP1 > 0 Then
ExitShort("sx1",Atlimit,SP1-PriceScale*30,"s1");
if SP2 > 0 Then
ExitShort("sx2",Atlimit,SP2-PriceScale*20,"s2");
if SP3 > 0 Then
ExitShort("sx3",Atlimit,SP3-PriceScale*10,"s3");
}
Else
{
SP1 = 0;
SP2 = 0;
SP3 = 0;
}
2
Input : Period(20), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if H >= BBdn and BBdn >= L and
C[1] < O[1] and C > O and
abs(C-O) > abs(C[1]-O[1]) Then
buy();
if H >= BBup and BBup >= L and
C[1] > O[1] and C < O and
abs(C-O) > abs(C[1]-O[1]) Then
sell();
참조데이터에는 강조식이 적용되지 않아 몸통에 색을 입힐수 없습니다.
일반 지표식으로 작성해 드립니다.
점그래프로 지정하고 해당 데이터위에 지표를 올려서 보셔야 합니다.
Input : Period(20), MultiD(2);
var : BBmd(0,data2),BBup(0,data2),BBdn(0,data2);
BBmd = data2(ma(C,Period));
BBup = data2(BollBandUp(Period,MultiD));
BBdn = data2(BollBandDown(Period,MultiD));
if data2(H >= BBdn and BBdn >= L and
C[1] < O[1] and C > O and
abs(C-O) > abs(C[1]-O[1])) Then
plot1(data2(H));
if data2(H >= BBup and BBup >= L and
C[1] > O[1] and C < O and
abs(C-O) > abs(C[1]-O[1])) Then
plot2(data2(L));
Input : Period(20), MultiD(2);
var : BBmd(0,data3),BBup(0,data3),BBdn(0,data3);
BBmd = data3(ma(C,Period));
BBup = data3(BollBandUp(Period,MultiD));
BBdn = data3(BollBandDown(Period,MultiD));
if data3(H >= BBdn and BBdn >= L and
C[1] < O[1] and C > O and
abs(C-O) > abs(C[1]-O[1])) Then
plot1(data3(H));
if data3(H >= BBup and BBup >= L and
C[1] > O[1] and C < O and
abs(C-O) > abs(C[1]-O[1])) Then
plot2(data3(L));
3
Input : Period(20), MultiD(2),short(12),long(26),sig(0);
var : BBmd(0),BBup(0),BBdn(0),MACDO(0);
MACDO = MACD_OSC(short,long,sig);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if crossup(MACDO[1],0) and C[1] > BBup[1] and
C < O Then
sell();
if CrossDown(MACDO[1],0) and C[1] < BBdn[1] and
C > O Then
buy();
2번과 같습니다. 참조데이터에 강조식이 적용되지 않으므로
지표식으로 작성해서 차트에 적용후 해당 데이터위로 올려서 보셔야 합니다.
Input : Period(20), MultiD(2),short(12),long(26),sig(0);
var : BBmd(0,data2),BBup(0,data2),BBdn(0,data2),MACDO(0,data2);
MACDO = data2(MACD_OSC(short,long,sig));
BBmd = data2(ma(C,Period));
BBup = data2(BollBandUp(Period,MultiD));
BBdn = data2(BollBandDown(Period,MultiD));
if data2(crossup(MACDO[1],0) and C[1] > BBup[1] and
C < O) Then
plot1(data2(H));
if data2(CrossDown(MACDO[1],0) and C[1] < BBdn[1] and
C > O) Then
plot2(data2(L));
Input : Period(20), MultiD(2),short(12),long(26),sig(0);
var : BBmd(0,data3),BBup(0,data3),BBdn(0,data3),MACDO(0,data3);
MACDO = data3(MACD_OSC(short,long,sig));
BBmd = data3(ma(C,Period));
BBup = data3(BollBandUp(Period,MultiD));
BBdn = data3(BollBandDown(Period,MultiD));
if data3(crossup(MACDO[1],0) and C[1] > BBup[1] and
C < O) Then
plot1(data3(H));
if data3(CrossDown(MACDO[1],0) and C[1] < BBdn[1] and
C > O) Then
plot2(data3(L));
즐거운 하루되세요
> softtoug 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
하기 수식 문의 드립니다.
1. MACD oscillator 로 진입을 하고 싶습니다.
0 보다 높아지면 매수 진입, 0보다 낮아지면 매도 진입
피라미딩 방법으로 진입하고 싶습니다. 가격이 올라가거나 떨어지거나
순서대로 바뀌게 되니 3가지 시간대로 차례차례 진입하고 싶습니다. :
data1 : 60분, data2 : 30분 , data3 : 10분
조건 :
매수 진입은 볼린져 밴드 중앙이평 하단에서만 oscillator 가 0 이상으로 바뀌었을때만, 진입하게 부탁드립니다. 밴드 중앙이평 상단에서는 매수진입 금지입니다.
매도 진입은 볼린져 밴드 중앙이평 상단에서만 oscillator 가 0 이하로 바뀌었을때만, 진입하게 부탁드립니다. 벤드 중앙이평 하단에서는 매도진입 금지입니다.
익절청산 조건은 : data 1 은 30틱, data 2 는 20틱, data 3 는 10틱으로 부탁드립니다.
조정가능하게 수식 부탁드립니다.
손절청산 조건은 없습니다.
추가로 궁금한게 있는데, 예를 들어 크루드 오일로 data 1 이 70불에 매도를 들어가고
data2 가 69.90 에 매도를 들어갔으면 청산은 제가 말씀드린 각각의 틱수에서 청산이 되는지요? 아니면 청산방식에서 선입선출이 적용되는지요?
제가 바라는 것과 달리 69.90에 진입한 것이 30틱 후에 청산되고 70에 진입한것이 20틱 후에
청산 되는 것인지요?
2. 가격이 현재 볼린져 밴드 하단에 몸통이나 꼬리가 걸쳐져 있고,
앞봉은 음봉이고, 앞봉보다 꼬리는 상관없이 앞봉의 몸통대비 몸통만 큰 양봉이 발생하면,
매수 진입부탁드립니다.
반대로 가격이 현재 볼린져 밴드 상단에 몸통이나 꼬리가 걸쳐져 있고,
앞봉은 양봉이고, 앞봉보다 꼬리는 상관없이 앞봉의 몸통대비 몸통만 큰 음봉이 발생하면,
매도 진입부탁드립니다.
data2 와 data 3는 지표로 챠트에 표시만 되게끔 부탁드립니다.
봉색깔이 노란색으로 되게 부탁드립니다.
3. 첨부된 캡쳐 파일처럼
MACD oscillator 가 0 이상으로 바뀌는 첫번째 봉이, 볼린져 상단을 넘어서서 완성이되고
다음봉이 음봉이 발생하면, 음봉발생 후 매도 진입 부탁드립니다.
반대로도 마찬가지로, MACD oscillator가 0이하로 바뀌는 첫번째 봉이, 볼린져 하단을 넘어서서 완성이되고 다음봉이 양봉이 발생하면, 양봉발생 후 매수 진입 부탁드립니다.
data2와 data3는 지표로 챠트에 표시만 되게끔 부탁드립니다.
봉색갈을 연두색으로 되게 부탁드립니다.
감사합니다.