안녕하세요^^
어제 수식질문으로 매수, 매도 조건 피드백을 받았습니다. 마지막으로 매수청산, 매도청산 관련해서 질문이 있어서 글 남깁니다.
1
input : P1(5),P2(10),P3(20),Period(5),short(12),long(26);
var : d1mav1(0,Data1),d1mav2(0,Data1),d1mav3(0,data1);
var : d2mav(0,Data2),d2macd(0,Data2);
var : d3mav(0,Data2),d3macd(0,Data2);
d1mav1 = data1(ma(C,P1));
d1mav2 = data1(ma(C,P2));
d1mav3 = data1(ma(C,P3));
d2mav = data2(ma(C,Period));
d2macd = Data2(macd(short,long));
d3mav = data3(ma(C,Period));
d3macd = Data3(macd(short,long));
if d1mav1 > d1mav2 and d1mav2 > d1mav3 and
d1mav1 > d1mav1[1] and d1mav2 > d1mav2[1] and d1mav3 > d1mav3[1] and
d1mav1-d1mav1[1] >= 0.1 and #ATan(d1mav1-d1mav1[1]) >= 0.1
data1(C-O) >= 0.3 and
d2mav > d2mav[1] and
d2macd >= 0.5 and
d3mav > d3mav[1] and
d3macd >= 0.5 and
data4(C-O) <= -2 and
Data1(NextBarStime) == Data2(NextBarStime) and
Data1(NextBarStime) == Data3(NextBarStime) Then
Buy("b");
if d1mav1 < d1mav2 and d1mav2 < d1mav3 and
d1mav1 < d1mav1[1] and d1mav2 < d1mav2[1] and d1mav3 < d1mav3[1] and
d1mav1-d1mav1[1] <= 0.1 and #ATan(d1mav1-d1mav1[1]) >= 0.1
data1(C-O) <= -0.3 and
d2mav < d2mav[1] and
d2macd <= -0.5 and
d3mav < d3mav[1] and
d3macd <= -0.5 and
data4(C-O) >= 2 and
Data1(NextBarStime) == Data2(NextBarStime) and
Data1(NextBarStime) == Data3(NextBarStime) Then
Sell("s");
이렇게 매수 수식 , 매도 수식을 어제 알려주셨는데
시장가 매수매도 질문을 드렸었는데
Buy("b"); <= 시장가 매수
Sell("s"); <= 시장가 매도 수식인가요?
1. 그렇다면 선물 계약 1계약 혹은 2계약으로 설정하고 싶다면 어떻게 해야하는지요?
2. 제가 1계약으로만 매매한다고 가정했을때 1번 수식에서 매수 => 이후 MACD 우하향시 청산하고 싶으면 로직이 따로 있는지요? 글을 찾아보니 BUY나 SELL을 쓰면 기존에 계약을 보유중이 아님에도 매도 주문이 나간다는 예를 봤던거 같은데 매수청산, 매도청산 수식이 따로 있는지요?
if d1mav1 > d1mav2 and d1mav2 > d1mav3 and
d1mav1 > d1mav1[1] and d1mav2 > d1mav2[1] and d1mav3 > d1mav3[1] and
d1mav1-d1mav1[1] >= 0.1 and #ATan(d1mav1-d1mav1[1]) >= 0.1
data1(C-O) >= 0.3 and
d2mav > d2mav[1] and
d2macd >= 0.5 and
d3mav > d3mav[1] and
d3macd >= 0.5 and
data4(C-O) <= -2 and
Data1(NextBarStime) == Data2(NextBarStime) and
Data1(NextBarStime) == Data3(NextBarStime) Then
Buy("b");
이후에 청산 로직을 쓰려면 IF문을 다시 사용해야 하나요?
3. 스탑로스 수식을 사용하고 싶은데요 바로 위 매수 수식에 청산로직 + 스탑로스 수식도 추가로 작성해 주시면 정말 감사드리겠습니다.(손절기준 윗꼬리 음봉 도지 OR 5분봉 5일선 이탈)
4. A라는 시스템매매 로직으로 1계약 매수가 들어갔는데, 청산 기준이 안나오고 추가 상승하여 B라는 시스템매매로직에 해당하여 1계약이 추가 매수가 들어갔을 경우 청산 로직이 달라져야 할거 같은데 이럴 경우는 어떻게 해야하는지요?
5. 모의투자 다중 계좌설정이 가능한가요? 한계좌에서 A,B 등등 섞어서 테스트도해보고,
A계좌는 A시스템 로직만 검증하고, B 계좌는 B 시스템 로직만 이런식으로도 검증해보고 싶어서요~
답변 1
예스스탁
예스스탁 답변
2022-06-24 11:25:07
안녕하세요
예스스탁입니다.
수식에 의해 신호가 발생하면 설정창에 지정한 가격으로 주문이 집행됩니다.
수식의 신호함수에는 자동매매시 실제 주문가격을 지정하는 옵션이 없습니다.
시장가와 같은 실제주문가격은 시스템을 차트에 적용하고 자동매매시
설정창에서 매매가격으로 지정하셔야 하는 부분입니다.
1
설정창에 수량을 지정하는 옵션이 있습니다.
수량은 수식안에서 지정하지 않으면 설정창에서 지정한 수량이 반영됩니다.
만약 수식안에서 설정하고자 하시면
buy와 sell함수에 4번째 매개변수가 수량입니다.
아래와 같이 지정하시면 됩니다.
buy("b",onclose,def,2);
2
buy와 sell은 진입신호함수이고
서로 반대포지션 상태에서 발생하면 반대포지션 청산하고 자기 진입에 들어가게 됩니다.
매수포지션 진입상태에서 청산만 하고자 하시면 exitlong,
매도포지션 진입상태에서 청산만 하고자 하시면 exitshort함수로 청산하게 하셔야 합니다.
즉 위함수이용해 별도로 청산 조건식을 추가하셔야 합니다.
혹은 기존식에서 sell을 하지 않고 청산만 한다면 sell을 exitlong으로 변경하시면 됩니다.
3
아래와 내용을 추가하시면 됩니다.
if MarketPosition == 1 Then
{
if H > C and C == O and C < C[1] Then
ExitLong();
if data1(CrossDown(C,d1mav1)) Then
ExitLong();
}
4
시스템은 차트에 적용되면 각각 독립적으로 수행됩니다.
다른 차트에 적용된 시스템에서 신호가 발생한 내역을 알지 못합니다.
그러므로 다른차트의 신호내역으로 청산식을 변경하는등의 내용은 구현이 불가능합니다.
5
모의투자는 주식계좌1개, 선물옵션계좌 1계만 발급됩니다.
여러개 발급되지 않습니다.
즐거운 하루되세요
> 분당고래 님이 쓴 글입니다.
> 제목 : 청산 관련 문의입니다!
> 안녕하세요^^
어제 수식질문으로 매수, 매도 조건 피드백을 받았습니다. 마지막으로 매수청산, 매도청산 관련해서 질문이 있어서 글 남깁니다.
1
input : P1(5),P2(10),P3(20),Period(5),short(12),long(26);
var : d1mav1(0,Data1),d1mav2(0,Data1),d1mav3(0,data1);
var : d2mav(0,Data2),d2macd(0,Data2);
var : d3mav(0,Data2),d3macd(0,Data2);
d1mav1 = data1(ma(C,P1));
d1mav2 = data1(ma(C,P2));
d1mav3 = data1(ma(C,P3));
d2mav = data2(ma(C,Period));
d2macd = Data2(macd(short,long));
d3mav = data3(ma(C,Period));
d3macd = Data3(macd(short,long));
if d1mav1 > d1mav2 and d1mav2 > d1mav3 and
d1mav1 > d1mav1[1] and d1mav2 > d1mav2[1] and d1mav3 > d1mav3[1] and
d1mav1-d1mav1[1] >= 0.1 and #ATan(d1mav1-d1mav1[1]) >= 0.1
data1(C-O) >= 0.3 and
d2mav > d2mav[1] and
d2macd >= 0.5 and
d3mav > d3mav[1] and
d3macd >= 0.5 and
data4(C-O) <= -2 and
Data1(NextBarStime) == Data2(NextBarStime) and
Data1(NextBarStime) == Data3(NextBarStime) Then
Buy("b");
if d1mav1 < d1mav2 and d1mav2 < d1mav3 and
d1mav1 < d1mav1[1] and d1mav2 < d1mav2[1] and d1mav3 < d1mav3[1] and
d1mav1-d1mav1[1] <= 0.1 and #ATan(d1mav1-d1mav1[1]) >= 0.1
data1(C-O) <= -0.3 and
d2mav < d2mav[1] and
d2macd <= -0.5 and
d3mav < d3mav[1] and
d3macd <= -0.5 and
data4(C-O) >= 2 and
Data1(NextBarStime) == Data2(NextBarStime) and
Data1(NextBarStime) == Data3(NextBarStime) Then
Sell("s");
이렇게 매수 수식 , 매도 수식을 어제 알려주셨는데
시장가 매수매도 질문을 드렸었는데
Buy("b"); <= 시장가 매수
Sell("s"); <= 시장가 매도 수식인가요?
1. 그렇다면 선물 계약 1계약 혹은 2계약으로 설정하고 싶다면 어떻게 해야하는지요?
2. 제가 1계약으로만 매매한다고 가정했을때 1번 수식에서 매수 => 이후 MACD 우하향시 청산하고 싶으면 로직이 따로 있는지요? 글을 찾아보니 BUY나 SELL을 쓰면 기존에 계약을 보유중이 아님에도 매도 주문이 나간다는 예를 봤던거 같은데 매수청산, 매도청산 수식이 따로 있는지요?
if d1mav1 > d1mav2 and d1mav2 > d1mav3 and
d1mav1 > d1mav1[1] and d1mav2 > d1mav2[1] and d1mav3 > d1mav3[1] and
d1mav1-d1mav1[1] >= 0.1 and #ATan(d1mav1-d1mav1[1]) >= 0.1
data1(C-O) >= 0.3 and
d2mav > d2mav[1] and
d2macd >= 0.5 and
d3mav > d3mav[1] and
d3macd >= 0.5 and
data4(C-O) <= -2 and
Data1(NextBarStime) == Data2(NextBarStime) and
Data1(NextBarStime) == Data3(NextBarStime) Then
Buy("b");
이후에 청산 로직을 쓰려면 IF문을 다시 사용해야 하나요?
3. 스탑로스 수식을 사용하고 싶은데요 바로 위 매수 수식에 청산로직 + 스탑로스 수식도 추가로 작성해 주시면 정말 감사드리겠습니다.(손절기준 윗꼬리 음봉 도지 OR 5분봉 5일선 이탈)
4. A라는 시스템매매 로직으로 1계약 매수가 들어갔는데, 청산 기준이 안나오고 추가 상승하여 B라는 시스템매매로직에 해당하여 1계약이 추가 매수가 들어갔을 경우 청산 로직이 달라져야 할거 같은데 이럴 경우는 어떻게 해야하는지요?
5. 모의투자 다중 계좌설정이 가능한가요? 한계좌에서 A,B 등등 섞어서 테스트도해보고,
A계좌는 A시스템 로직만 검증하고, B 계좌는 B 시스템 로직만 이런식으로도 검증해보고 싶어서요~