예스스탁
예스스탁 답변
2022-10-21 12:50:39
안녕하세요
예스스탁입니다.
1
강제청산 중 SetStopInactivity는
진입이후 지정한 봉수까지 진입방향으로 지정한 값 이상 움직임이 없으면 청산합니다.
SetStopInactivity(PriceScale*5,20,PointStop);
매수진입이면 20개봉까지 진입가+5틱 이상 상승이 없었으면 청산
매도진입이면 20개봉까지 진입가-5틱 이상 하락이 없었으면 청산입니다.
반대로 가는 것은 확인하지 않습니다.
상승하락을 동시에 체크하시면 수식으로 풀어서 보셔야 합니다.
if MarketPosition == 1 Then
{
if BarsSinceEntry == 20 and
highest(H,BarsSinceEntry) < EntryPrice+PriceScale*5 and
lowest(L,BarsSinceEntry) > EntryPrice+PriceScale*5 Then
ExitLong();
if BarsSinceEntry == 30 and
highest(H,BarsSinceEntry) < EntryPrice+PriceScale*10 and
lowest(L,BarsSinceEntry) > EntryPrice+PriceScale*10 Then
ExitLong();
}
if MarketPosition == 1 Then
{
if BarsSinceEntry == 20 and
highest(H,BarsSinceEntry) < EntryPrice+PriceScale*5 and
lowest(L,BarsSinceEntry) > EntryPrice+PriceScale*5 Then
ExitShort();
if BarsSinceEntry == 30 and
highest(H,BarsSinceEntry) < EntryPrice+PriceScale*10 and
lowest(L,BarsSinceEntry) > EntryPrice+PriceScale*10 Then
ExitShort();
}
2
올려주신 내용만으로 수식으로 답변드리기 어렵습니다.
해당 부분은 사용자분이 구현한 수식 내용을 확인해 보셔야 합니다.
청산식을 어떻게 작성하셨는지에 따라 다릅니다.
청산함수에 수량을 지정하지 않으면 전량청산이고
청산함수에 수량을 지정하셨으면 조건만족시 지정한 수량으로 청산이 됩니다.
수량을 지정할 때도 청산함수에 수량을 1로 고정해 놓았다면
조건만족시 1계약만 청산이 발생하고 현재보유수량의 절반이라고 지정하면
진입수량이 10이면 5계약이 청산되게 됩니다.
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 일전에도 비슷한 내용으로 문의드렸는데 실전에서 정확히 적용되지 않아 다시 문의드리게 되었습니다.
1. 다름이 아니라 골드선물 매매에서 20개봉이내에서 5틱이내 변동성이면 자동청산하고자 합니다.
설정창의 최소가격변화에 해당합니다. 그래서 아래와 같은 공개된 수식을 썼습니다.
SetStopInactivity(PriceScale*5,20,PointStop);
그런데 실제 5틱 변동성이 아니라 수십틱이 넘어도 일부는 청산이 되고 있어 원인을 찾아봐도 알 수가 없습니다. 틱이 아니라 포인트로 인식하는건지, 수식에 대한 개념을 제가 정확히 이해못한건지 모르겠습니다.
정확한 지표에 대한 이해와 활용을 하길 원합니다.
그리고 1개가 아닌 2개를 동시에 쓰고자 합니다.
이를테면 20봉 경과지점에서 5틱, 30봉 경과지점에서 10틱이내 변동성이면 무조건 전량 자동청산되는 식을 원합니다.
2. 골드 10계약을 진입한다고 했을때 현재 2계약을 동시 매수해 1계약씩 분할청산(분할손절 또는 트레이딩스탑) 또는 한번에 2계약 모두 청산하는 로직으로 시스템매매식을 구현해서 쓰고 있습니다.
만일 2계약에서 8계약으로 계약수를 늘리면 2계약할때 처럼 10계약도 매수(매도)후 5계약 또는 10계약씩 청산이 되는지 궁금합니다.
그리고 계약수 분산 진입을 위해 2계약은 원래대로 진입하고 나머지 계약수는 1640이 시스템수식상 매수(매도)가라면 1640을 기준으로 1640.2, 1640.4 그리고 1639.8, 1638.4에도 매수(매도)되는 식을 구현할려면 어떻게하면될지 조언 부탁드립니다. 물론 바로 가버리면 6계약만 체결될텐데 이경우도 자동으로 3계약이나 6계약단위로 매매가 되는지 궁금합니다.
추가진입은 보통 아래 구조로 작성됩니다.
매도는 반대입니다.
추가진입을 하게 수식을 구현하셨다면
적용시 설정창에서 피라미딩을 설정하고 적용하셔야 합니다.
if MarketPosition <= 0 and 첫매수조건 Then
Buy("첫매수",OnClose,Def,2);
if MarketPosition == 1 Then
{
if MaxEntries == 1 and 추가진입조건 Then
buy("추가매수1",OnClose,Def,1);
if MaxEntries == 2 and 추가진입조건 Then
buy("추가매수2",OnClose,Def,1);
if MaxEntries == 3 and 추가진입조건 Then
buy("추가매수3",OnClose,Def,1);
if MaxEntries == 4 and 추가진입조건 Then
buy("추가매수4",OnClose,Def,1);
}
미리 노고에 감사의 말씀드립니다~