커뮤니티
문의드립니다.
2017-01-02 07:45:55
143
글번호 105462
수고하십니다. 항상 도움 주셔서 조금씩 재미가 붙고 있습니다. 감사합니다.
<MACD매매>
1.매수조건
MACDV 가 기준선을 골든크로스한 다음 2번째 봉(크로스 교차점에서 2번째 봉) 에서 시장가 매수진입
이때 5일선과 아래 20일선 과의 수직교차 거리가 3틱 이상
2.매도조건
매수조건과 반대
3.청산조건
매수청산: 전고점 보다 고점이 낮아지면 청산
매도청산: 전저점 보다 저점이 높아지면 청산
하고 a.wav 실행
4.손절 : 15틱 손절후 b.wav 실행
5.본절 : 수익이 10틱 이상 12틱 이하 일때 진입가+1틱 으로 손절가를 이동시키고 c.wav 실행
<스토캐스틱매매>
1.매수조건
스토캐스틱 침체 이고 캔들 저점이 (연속 3봉이상 또는 5봉 중에 3봉이상) 동일한 값을 유지하며 아래를 뚫지 못할때 다음 봉에서 시장가 매수진입
2.매도조건
스토캐스틱 과열 이고 캔들 고점이 (연속 3봉이상 또는 5봉 중에 3봉이상) 동일한 값을 유지하며 위를 뚫지 못할때 다음 봉에서 시장가 매도진입
3.청산,손절
청산: 매수진입했다면 (과열 이고 스토캐스틱 데드크로스) or MACD 데드크로스 즉시 청산
매도진입했다면 (침체 이고 스토캐스틱 골든크로스) or MACD 골든크로스 즉시 청산
하고 a.wav 실행
손절: 12틱 손절후 b.wav 실행
본절: 수익이 8틱 이상 10틱 이하 일때 진입가+1틱 으로 손절가를 이동시키고 c.wav 실행
이상과 같이 2개의 수식 부탁드립니다. 2개의 수식을 1개의 시스템 파일에 넣고 매매시간을 오전,오후로 다르게 설정하여 운영하려 합니다.
그런데 청산,손절,본절 값이 각각 다릅니다. 이럴땐 각각 따로 청산,손절,본절 수식을 설정해주는지 궁금합니다.
그리고 아래와 같이 1개의 시스템 파일에 2개 이상의 매매기법을 사용하였는데 A매매 가 청산 되지 않았는데도 B매매 가 매수신호가 나옵니다. 어떤때는 빼곡히 몇개가 나오기도 하구요. 청산,손절 수식도 뒤에 있는데 말이죠...A매매 가 청산,손절 등으로 포지션이 없어지기 전에는 다른 매수,매도 신호가 안나오게 하려면 어떻게 하면 되나요? 가르침 바랍니다.
if MarketPosition <= 0 and 조건문
Then {
buy("A매매");
}
if MarketPosition <= 0 and 조건문
Then {
buy("B매매");
}
새해 복 많이 받으세요 ^^
답변 1
예스스탁 예스스탁 답변
2017-01-02 13:58:41
안녕하세요
예스스탁입니다.
아래 내용 참고하셔서 수정보완해 사용하시기 바라니다.
소리출력은 봉완성시를 기준으로 하는 조건에만 지정할수 있습니다.
손절매와 같이 가격조건만족 즉시 발생하게 작성되는 신호에는
수식에서 지정할수 없습니다.
MACD매매의 청산조건에서 전고점 전저점에 대한 교칙은 언급이 없으셔서
일반적으로 쓰는 스윙하이 스윙로우로 대체했습니다.
매수진입후 고점발생했는데 전고점보다 낮으면 청산
매도는 반대입니다.
식작성에 참고하시기 바랍니다.
Input : short(25), long(26), sig(9),P1(5),P2(20),left(3),right(3),sto1(10),sto2(5),sto3(5);
var : MACDV(0),MACDS(0),mav1(0),mav2(0),H1(0),H2(0),L1(0),L2(0),stok(0),stod(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV, sig);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
#12시 이전에만
if stime < 120000 then{
If MarketPosition <= 0 and CrossUP(MACDV[2], MACDS[2]) and mav1 >= mav2+PriceScale*3 Then
Buy("b1");
If MarketPosition >= 0 and CrossDown(MACDV[2], MACDS[2]) and mav1 <= mav2-PriceScale*3 Then
Sell("s1");
}
#b1진입에 대한 청산
if SwingHigh(1,H,Left,right,Left+right+1) != -1 Then{
H1 = H[right];
H2 = H1[1];
if MarketPosition == 1 and H1 < H2 and H2 > 0 and IsEntryName("b1") == true Then{
ExitLong("bx11");
PlaySound("~~~~a.wav");
}
}
if MarketPosition == 1 and IsEntryName("b1") == true Then{
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*10 Then
exitlong("bx12",AtStop,EntryPrice-PriceScale*15);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*10 and highest(H,BarsSinceEntry) <= EntryPrice+PriceScale*12 Then
exitlong("bx13",AtStop,EntryPrice+PriceScale*1);
}
if SwingLow(1,L,Left,right,Left+right+1) != -1 Then{
L1 = L[right];
L2 = L1[1];
if MarketPosition == -1 and L1 > L2 and L2 > 0 and IsEntryName("s1") == true Then{
ExitShort("sx11");
PlaySound("~~~~1.wav");
}
}
#s1진입에 대한 청산
if MarketPosition == -1 and IsEntryName("s1") == true Then{
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*10 Then
ExitShort("sx12",AtStop,EntryPrice+PriceScale*15);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*10 and Lowest(L,BarsSinceEntry) >= EntryPrice-PriceScale*12 Then
ExitShort("sx13",AtStop,EntryPrice-PriceScale*1);
}
#12시 이후진입
if stime >= 120000 then{
if MarketPosition <= 0 and stok <= 20 and L == L[1] and (countif(L==L[1],3) == 3 or countif(L == L[1],5) >= 3) Then
buy("b2");
if MarketPosition >= 0 and stok >= 80 and H == H[1] and (countif(H==H[1],3) == 3 or countif(H == H[1],5) >= 3) Then
sell("s2");
}
#b2진입에 대한 청산
if MarketPosition == 1 and IsEntryName("b2") == true then{
if (stok >= 80 and CrossDown(stok,stod)) or CrossDown(MACDV,MACDS) Then{
exitlong("bx21");
PlaySound("~~~~a.wav");
}
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*8 Then
exitlong("bx22",AtStop,EntryPrice-PriceScale*12);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*8 and highest(H,BarsSinceEntry) <= EntryPrice+PriceScale*10 Then
exitlong("bx23",AtStop,EntryPrice+PriceScale*1);
}
#s2진입에 대한 청산
if MarketPosition == -1 and IsEntryName("s2") == true then{
if (stok <= 20 and CrossUp(stok,stod)) or CrossUp(MACDV,MACDS) Then{
ExitShort("sx21");
PlaySound("~~~~a.wav");
}
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*8 Then
ExitShort("sx22",AtStop,EntryPrice+PriceScale*12);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*8 and Lowest(L,BarsSinceEntry) >= EntryPrice-PriceScale*10 Then
ExitShort("sx23",AtStop,EntryPrice-PriceScale*1);
}
즐거운 하루되세요
> 웹피 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 수고하십니다. 항상 도움 주셔서 조금씩 재미가 붙고 있습니다. 감사합니다.
<MACD매매>
1.매수조건
MACDV 가 기준선을 골든크로스한 다음 2번째 봉(크로스 교차점에서 2번째 봉) 에서 시장가 매수진입
이때 5일선과 아래 20일선 과의 수직교차 거리가 3틱 이상
2.매도조건
매수조건과 반대
3.청산조건
매수청산: 전고점 보다 고점이 낮아지면 청산
매도청산: 전저점 보다 저점이 높아지면 청산
하고 a.wav 실행
4.손절 : 15틱 손절후 b.wav 실행
5.본절 : 수익이 10틱 이상 12틱 이하 일때 진입가+1틱 으로 손절가를 이동시키고 c.wav 실행
<스토캐스틱매매>
1.매수조건
스토캐스틱 침체 이고 캔들 저점이 (연속 3봉이상 또는 5봉 중에 3봉이상) 동일한 값을 유지하며 아래를 뚫지 못할때 다음 봉에서 시장가 매수진입
2.매도조건
스토캐스틱 과열 이고 캔들 고점이 (연속 3봉이상 또는 5봉 중에 3봉이상) 동일한 값을 유지하며 위를 뚫지 못할때 다음 봉에서 시장가 매도진입
3.청산,손절
청산: 매수진입했다면 (과열 이고 스토캐스틱 데드크로스) or MACD 데드크로스 즉시 청산
매도진입했다면 (침체 이고 스토캐스틱 골든크로스) or MACD 골든크로스 즉시 청산
하고 a.wav 실행
손절: 12틱 손절후 b.wav 실행
본절: 수익이 8틱 이상 10틱 이하 일때 진입가+1틱 으로 손절가를 이동시키고 c.wav 실행
이상과 같이 2개의 수식 부탁드립니다. 2개의 수식을 1개의 시스템 파일에 넣고 매매시간을 오전,오후로 다르게 설정하여 운영하려 합니다.
그런데 청산,손절,본절 값이 각각 다릅니다. 이럴땐 각각 따로 청산,손절,본절 수식을 설정해주는지 궁금합니다.
그리고 아래와 같이 1개의 시스템 파일에 2개 이상의 매매기법을 사용하였는데 A매매 가 청산 되지 않았는데도 B매매 가 매수신호가 나옵니다. 어떤때는 빼곡히 몇개가 나오기도 하구요. 청산,손절 수식도 뒤에 있는데 말이죠...A매매 가 청산,손절 등으로 포지션이 없어지기 전에는 다른 매수,매도 신호가 안나오게 하려면 어떻게 하면 되나요? 가르침 바랍니다.
if MarketPosition <= 0 and 조건문
Then {
buy("A매매");
}
if MarketPosition <= 0 and 조건문
Then {
buy("B매매");
}
새해 복 많이 받으세요 ^^
이전글