안녕하세요? 왕초보 탱구리입니다.
가입하고 개발자님을 항상 존경하며 수식공부를 하다가 막히는 부분이 있어 질문을 드립니다.
바쁘신 와중에도 잠시만 봐주시면 정말 감사드리겠습니다.
제가 만든 코인 수식입니다. 부끄럽네요ㅜㅜ
작동은 잘 하는데 맞게 된건지 한번 살펴봐주세요.
기준선 돌파 이런 식입니다.
그런데 수익이 안나와서 식을 좀 수정해 보려고하는데 막히네용....ㅜㅜ
<제가 만든식>
Input: shortperiod(12), longperiod(24), sig(9);
var: value(0), signal(0);
Signal = Ema(value, sig);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
If value > 0 and CrossUp(value, signal) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell ();
}
If value > 0 and CrossDown(value, signal) Then
{
Sell();
}
위 식을 첨부파일1 그림처럼 수정을 해보려고요.
ps. 복리를 추라하려고 넣었더니 BUY값이 이미 지정되었습니다. 라고 뜨네요(바이가 두번들어간게 수식이 잘못되었나요?) 복리추가도 같이 좀 봐주세욤.
input : 원금(100000),시작일(20200829),시작시간(90000);
var : Tcond(False),수량(0);
if sDate == 시작일 and sTime >= 시작시간 Then
Tcond = true;
수량 = IntPortion((원금+NetProfit())/C)+ FracPortion((원금+NetProfit())/C);
if Tcond == true Then
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy("매수",Atmarket,DEF,수량);
}
If value > 0 and CrossUp(value, signal) Then
{
Buy("매수",Atmarket,DEF,수량);
}
(바이가 두번 지정되었다고 나와서 아... 수식이 잘못되었구나 생각이 듬요.)
바쁘신 와중에 읽어주셔서 너무너무 감사드려용~~^^
답변 1
예스스탁
예스스탁 답변
2022-02-18 13:39:15
안녕하세요
예스스탁입니다.
1
MACD가 0선을 상향돌파할때 매수
MACD가 0선 위에서 시그널을 상향돌파할때 매수
MACD가 0선을 하향이탈할때 매도
MACD가 0선 위에서 시그널을 하향이탈할때 매도
작성하신 수식은 위 내용입니다.
macd가 0선 아래에서 시그널과 교차할때 신호는 없습니다.
0선위에서 macd와 시그널이 교차시 마다 신호가 발생하게 됩니다.
0선 돌파이후 MACD와 시그널의 하향이탈에서만 매도하고
이후 첫 macd가 시그널의 상향돌파시에만 매수를 한다면 아래와 같이 수정하셔야 합니다.
Input: shortperiod(12), longperiod(24), sig(9);
var: value(0), signal(0),count(0);
value = macd(shortperiod, longperiod);
Signal = Ema(value, sig);
# 매수/매도청산
If CrossUP(value, 0) Then
{
count = 0;
Buy();
}
If value > 0 and CrossUp(value, signal) Then
{
count = count+1;
if count == 1 Then
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell ();
}
If value > 0 and CrossDown(value, signal) and count == 0 Then
{
Sell();
}
2
수량 = IntPortion((원금+NetProfit())/C)+FracPortion((원금+NetProfit())/C);
수량산정시에 (원금+NetProfit())/C 값을 어떤 이유로 정수와 소숫점을 분리한 이후에 더하는지 모르겠습니다.
아래와 같이 원금에 전체손익을 더하고 종가로 나누어 진입하게 하시면 되며
수량 = (원금+NetProfit)/C;
직입방식이 atmarket으로 봉완성시(다음봉시가수신) 다음봉시가를 리포트의 가격으로 사용하는 타입이므로
C대신에 다음봉시가를 지정해 주시면 됩니다.
수량 = (원금+NetProfit)/NextBarOpen;
즐거운 하루되세요
> 탱탱볼 님이 쓴 글입니다.
> 제목 : 수식 문의드립니다
> 안녕하세요? 왕초보 탱구리입니다.
가입하고 개발자님을 항상 존경하며 수식공부를 하다가 막히는 부분이 있어 질문을 드립니다.
바쁘신 와중에도 잠시만 봐주시면 정말 감사드리겠습니다.
제가 만든 코인 수식입니다. 부끄럽네요ㅜㅜ
작동은 잘 하는데 맞게 된건지 한번 살펴봐주세요.
기준선 돌파와 크로스를 같이 구현해 봤습니다. 기준선 돌파하면 매수하고 기준선 위에서 크로스
다운시 매도 크로스업에 매수, 기준선 이탈하면 매도... 이런 식입니다.
그런데 수익이 안나와서 식을 좀 수정해 보려고하는데 막히네용....ㅜㅜ
<제가 만든식>
Input: shortperiod(12), longperiod(24), sig(9);
var: value(0), signal(0);
value = macd(shortperiod, longperiod);
Signal = Ema(value, sig);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
If value > 0 and CrossUp(value, signal) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell ();
}
If value > 0 and CrossDown(value, signal) Then
{
Sell();
}
위 식을 첨부파일1 그림처럼 수정을 해보려고요.
첨부파일1 그림과 같이...
기준선 돌파시 매수
(기준선 위에서) 첫번째 크로스다운시 매도
(기준선 위에서) 두번째 크로스업시 매수
(!!이후로 크로스는 무시하고!!) 기준선 이탈시 매도
기준선 아래에서는 대기...
ps. 복리를 추라하려고 넣었더니 BUY값이 이미 지정되었습니다. 라고 뜨네요(바이가 두번들어간게 수식이 잘못되었나요?) 복리추가도 같이 좀 봐주세욤.
input : 원금(100000),시작일(20200829),시작시간(90000);
var : Tcond(False),수량(0);
if sDate == 시작일 and sTime >= 시작시간 Then
Tcond = true;
수량 = IntPortion((원금+NetProfit())/C)+ FracPortion((원금+NetProfit())/C);
if Tcond == true Then
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy("매수",Atmarket,DEF,수량);
}
If value > 0 and CrossUp(value, signal) Then
{
Buy("매수",Atmarket,DEF,수량);
}
(바이가 두번 지정되었다고 나와서 아... 수식이 잘못되었구나 생각이 듬요.)
그림과 같이 베이스는 MACD 기준선 돌파/이탈이며 기준선 위에서 첫번째 크로스다운과 두번째크로스업을 매수매도하여 손실을 줄이는 식입니다. 복리를 추가하여 수익관리를 디테일하게 가져갈수 있는 식을 만들어주시면 이 은혜 잊지않겠습니다.ㅠㅠ
바쁘신 와중에 읽어주셔서 너무너무 감사드려용~~^^