예스스탁
예스스탁 답변
2023-03-30 09:51:07
안녕하세요
예스스탁입니다.
1
atlimit이나 atstop이 봉완성시 셋팅이되어서 다음봉에서 현재가와 비교해 진입이 발생합니다.
첫진입후 한봉이 완성되어야 하므로 첫진입과 같이 셋팅이 되서
다음봉을 감시하는 내용과 이후 감시하는 내용을 지정하셔야 합니다.
2
각 추가진입은 진입이후 최저가를 기준으로 최저가가 해당가격 이하로 내려가지 않은 상태에서
첫도달시만 진입하게 하시면 됩니다.
3
var : 이평(0),간격(0),매수가격(0);
이평 = ma(C,20) ;
간격 = PriceScale*10;
if marketposition == 0 and C > 이평 then
{
buy("b1",OnClose,Def,1) ;
매수가격 = C;
buy("b2.",atlimit,매수가격+간격*1,1) ;
buy("b3.",atlimit,매수가격+간격*2,1) ;
buy("b4.",atlimit,매수가격+간격*3,1) ;
buy("b5.",atlimit,매수가격+간격*4,1) ;
buy("b6.",atlimit,매수가격+간격*5,1) ;
}
if marketposition == 1 then
{
if lowest(L,BarsSinceEntry) > 매수가격+간격*1 Then
buy("b2",atlimit,매수가격+간격*1,1) ;
if lowest(L,BarsSinceEntry) > 매수가격+간격*2 Then
buy("b3",atlimit,매수가격+간격*2,1) ;
if lowest(L,BarsSinceEntry) > 매수가격+간격*3 Then
buy("b4",atlimit,매수가격+간격*3,1) ;
if lowest(L,BarsSinceEntry) > 매수가격+간격*4 Then
buy("b5",atlimit,매수가격+간격*4,1) ;
if lowest(L,BarsSinceEntry) > 매수가격+간격*5 Then
buy("b6",atlimit,매수가격+간격*5,1) ;
if CurrentContracts < 3 Then
SetStopProfittarget(PriceScale*10,PointStop);
Else
{
SetStopProfittarget(0);
ExitLong("bx",AtLimit,EntryPrice+PriceScale*10);
}
}
Else
SetStopProfittarget(0);
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다.
> 항상 도움 주셔서 감사합니다.
종목 : 해외선물
차트 : 5분봉
최초 매수, 매도 진입이후 10틱 간격으로 불타기나 물타기 할경우
실제 진입한 가격을 보면 같은 가격에 진입되는 경우가 많은것 같습니다.
요청사항1 :
저는 일정한 간격으로 불타기나 물타기를 하고 싶습니다.
최대한 정확한 진입가격을 위한 방법이 무엇인지 도움 부탁드립니다.
[일정한 간격으로 진입]
요청사항2 :
청산할때 일정계약수 이하에서는 개별청산,
일정계약수 이상에서는 평균진입가보다 10틱이상일 경우 일괄청산 하고 싶습니다.
[개별청산은 진입건보다 10틱이상 수익시 청산
[일괄청산은 남아있는 계약의 평균가격 대비 10틱 이상 수익이면 일괄청산]
# 매수의 경우
var : 이평(0) ;
이평 = ma(C,20) ;
if marketposition == 0 and C > 이평 then
buy("b",atlimit,C,1) ;
매수가격 = entryprice ;
# 불타기
# 방법1
if marketposition == 1 then
{
buy("b2",atlimit,매수가격+10*pricescale*2,1) ;
buy("b3",atlimit,매수가격+10*pricescale*3,1) ;
buy("b4",atlimit,매수가격+10*pricescale*4,1) ;
buy("b5",atlimit,매수가격+10*pricescale*5,1) ;
buy("b6",atlimit,매수가격+10*pricescale*6,1) ;
# 방법2
if marketposition == 1 then
{
if MaxEntries == 1 Then
buy("b2",atlimit,매수가격+10*pricescale*2,1) ;
if MaxEntries == 2 Then
buy("b3",atlimit,매수가격+10*pricescale*3,1) ;
if MaxEntries == 3 Then
buy("b4",atlimit,매수가격+10*pricescale*4,1) ;
if MaxEntries == 4 Then
buy("b5",atlimit,매수가격+10*pricescale*5,1) ;
if MaxEntries == 5 Then
buy("b6",atlimit,매수가격+10*pricescale*6,1) ;
}
#방법3
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*2 Then
Buy("b2",AtLimit,매수가격+10*pricescale*MaxEntries,amt);
if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*3 Then
Buy("b3",AtLimit,매수가격+10*pricescale*MaxEntries,amt);
if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*4 Then
Buy("b4",AtLimit,매수가격+10*pricescale*MaxEntries,amt);
if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*5 Then
Buy("b5",AtLimit,매수가격+10*pricescale*MaxEntries,amt);
if highest(H,BarsSinceEntry) < 매수가격-10*pricescale*6 Then
Buy("b6",AtLimit,매수가격+10*pricescale*MaxEntries,amt);
}
# 위 셋중 어느방법이 더 정확하게 진입이 되나요?
# 위 방법외에 더 정확한 진입을 위한 수식이 있으면 수정 부탁드립니다.
# 물타기
# 방법1
if marketposition == 1 then
buy("bb2",atlimit,매수가격-10*pricescale*2,1) ;
buy("bb3",atlimit,매수가격-10*pricescale*3,1) ;
buy("bb4",atlimit,매수가격-10*pricescale*4,1) ;
buy("bb5",atlimit,매수가격-10*pricescale*5,1) ;
buy("bb6",atlimit,매수가격-10*pricescale*6,1) ;
# 방법2
if marketposition == 1 then
{
if MaxEntries == 1 Then
buy("b2",atlimit,매수가격-10*pricescale*2,1) ;
if MaxEntries == 2 Then
buy("b3",atlimit,매수가격-10*pricescale*3,1) ;
if MaxEntries == 3 Then
buy("b4",atlimit,매수가격-10*pricescale*4,1) ;
if MaxEntries == 4 Then
buy("b5",atlimit,매수가격-10*pricescale*5,1) ;
if MaxEntries == 5 Then
buy("b6",atlimit,매수가격-10*pricescale*6,1) ;
}
#방법3
if MarketPosition == 1 Then
{
if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*2 Then
Buy("b2",AtLimit,매수가격-10*pricescale*MaxEntries,amt);
if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*3 Then
Buy("b3",AtLimit,매수가격-10*pricescale*MaxEntries,amt);
if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*4 Then
Buy("b4",AtLimit,매수가격-10*pricescale*MaxEntries,amt);
if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*5 Then
Buy("b5",AtLimit,매수가격-10*pricescale*MaxEntries,amt);
if lowest(L,BarsSinceEntry) > 매수가격-10*pricescale*6 Then
Buy("b6",AtLimit,매수가격-10*pricescale*MaxEntries,amt);
}
# 개별청산
if MarketPosition == 1 and CurrentContracts < 3 Then
{
SetStopProfittarget(PriceScale*10,PointStop);
}
Else
SetStopProfittarget(0);
# 일괄청산
#방법1:
if MarketPosition == 1 and CurrentContracts >= 3 Then
{
exitlong("bx",atlimit,avgentryprice-PriceScale*10,PointStop);
}
#방법2:
if MarketPosition == 1 and CurrentContracts >= 3 Then
{
if openpositionprofit/0.025[틱사이즈] < 10*pricescap then
exitlong("bx",atlimit,c,PointStop);
}
# 둘중 어느것이 더 정확한 코딩인가요?
# 위 방법외에 더 정확한 청산을 위한 방법이 있으면 수정 부탁드립니다.
도움 부탁드립니다.
감사합니다.