예스스탁
예스스탁 답변
2020-09-18 13:38:07
안녕하세요
예스스탁입니다.
1
청산함수는 수량을 지정하면 해당 수량으로 청산신호가 발생하고
수량을 지정하지 않으면 현재 남은잔량 모두를 청산합니다.
2
If ExitName(1) == "매도" Then
{
X == 2;
}
If ExitName(1) == "손절" Then
{
Y == 2;
}
변수의 값할당은 = 입니다. ==은 같다라는 표현입니다.
위식에서는 X = 2; Y = 2;가 되어야 합니다.
3
수정한 식입니다.
Input : VPeriod(30),SPeriod(5),Deposit(10000000);
var : contract(0),vol(0);
#계약수 짝수화
if Mod(floor((Deposit-entryprice*CurrentContracts)/C),2) ==1
Then
Contract = floor((Deposit-entryprice*CurrentContracts)/C)-1;
Else if Mod(floor((Deposit-entryprice*CurrentContracts)/C),2) == 0
then
Contract = floor((Deposit-entryprice*CurrentContracts)/C);
#매수
If CrossUp(CCI(Vperiod),-100) then
Buy("과매도매수",Atmarket,DEF,contract);
if marketposition == 1 then
{
#현재수량이 진입후 최고수량이면(한번도 청산안된상태)
#청산수량을 현재수랴의 전반으로 지정
#아니면 보윳수량 전량지
if CurrentContracts == MaxContracts Then
vol = Floor(CurrentContracts/2);
Else
vol = CurrentContracts;
if C[1] > C[0] Then
{
exitlong("매도1",AtMarket,DEF,"과매도매수",vol,1);
}
if C <= Lowest(C,SPeriod) Then
{
exitlong("손절",AtMarket,DEF,"과매도매수",vol,1);
}
}
즐거운 하루되세요
> 기사단장 님이 쓴 글입니다.
> 제목 : 분할매도 관련 문의
> 안녕하세요 담당자님
항상 도와주셔서 큰 도움이 되고있습니다.
매수조건 1개와 매도 조건 2개를 이용하여, 매도 시 절반씩 분할하여 매도하는 시스템식을 작성하였습니다.
최초 매도조건에 절반을 매수하고, 마지막 매도조건에 전액을 매도하도록 하고자 합니다.
물론 고정진입수량을 지정하면 되지만, 예수금기준으로 매수 가능한 수량을 계산하여 매번 변화하는 계약수로 평가하는 의도로 작성하였습니다.
하지만 두번째 매도식에서 전액을 팔지 않고 절판만 매도하여 미청산금이 누적되는 문제가 있습니다.
아래 수식에서 디버그가 가능할지, 혹은 더 좋은 방법이 있으면 알려주시면 감사하겠습니다.
Input : VPeriod(30),SPeriod(5),Deposit(10000000);
var : X(1),Y(1),contract(0);
#계약수 짝수화
if Mod(floor((Deposit-entryprice*CurrentContracts)/C),2) ==1
Then
Contract = floor((Deposit-entryprice*CurrentContracts)/C)-1;
Else if Mod(floor((Deposit-entryprice*CurrentContracts)/C),2) == 0
then
Contract = floor((Deposit-entryprice*CurrentContracts)/C);
#매수
If CrossUp(CCI(Vperiod),-100) then
Buy("과매도매수",Atmarket,DEF,contract);
#두번째 매도조건에 전량 매도하기 위한 수식
If ExitName(1) == "매도"
Then{
X == 2;
}
If ExitName(1) == "손절"
Then{
Y == 2;
}
if marketposition==1
and C[1]>C[0]
then{
exitlong("매도",AtMarket,DEF,"과매도매수",CurrentContracts/2*Y);
}
if marketposition==1
and C <= Lowest(C,SPeriod)
Then{
exitlong("손절",AtMarket,DEF,"과매도매수",CurrentContracts/2*X);
}