예스스탁
예스스탁 답변
2024-10-28 11:25:06
안녕하세요
예스스탁입니다.
현재 봉완성시(다음봉시가수신)에 진입하고
진입후 첫봉에 바로 청산이 되는데
이때 MarketPosition이 전봉과 비교해서 변화가 없습니다.
여러 매수가 있지만 추가진입(피라미딩)을 하는 내용이 아니므로
청산기준으로 체크되게 변경해 드립니다.
input : st(103000);
input : b진입횟수(1),손절진입횟수(1),트레진입횟수(1),최소변화진입횟수(1);
input : 손절고점갱신(3),트레고점갱신(4),최소변화고점갱신(5);
input : ls(0.5),tr(0.5),최소가격(0.5),봉수(10);
var : count(0);
var : b진입count(0),손절진입count(0),트레진입count(0),최소변화진입count(0);
var : T1(0),entry(0);
if Bdate != Bdate[1] Then
{
b진입count = 0;
손절진입count = 0;
트레진입count = 0;
최소변화진입count = 0;
}
if TotalTrades > TotalTrades[1] Then
{
if IsEntryName("b",1) == true Then
b진입count = b진입count+1;
if IsEntryName("손절진입",1) == true Then
손절진입count = 손절진입count+1;
if IsEntryName("트레진입",1) == true Then
트레진입count = 트레진입count+1;
if IsEntryName("최소변화진입",1) == true Then
최소변화진입count = 최소변화진입count+1;
}
if stime >= st and b진입count < b진입횟수 then
Buy("b");
if MarketPosition == 0 Then
{
if TotalTrades > TotalTrades[1] Then
count = 0;
if DayHigh(0) > DayHigh(0)[1] Then
count = count+1;
if IsExitName("StopLoss",1) == true and 손절진입count < 손절진입횟수 and
ExitDate(1) == sDate and
count == 손절고점갱신 Then
Buy("손절진입");
if IsExitName("StopTrailing",1) == true and 트레진입count < 트레진입횟수 and
ExitDate(1) == sDate and
count == 트레고점갱신 Then
Buy("트레진입");
if IsExitName("StopInactivity",1) == true and 최소변화진입count < 최소변화진입횟수 and
ExitDate(1) == sDate and
count == 최소변화고점갱신 Then
Buy("최소변화진입");
}
SetStopLoss(ls,pointStop);
SetStopTrailing(tr,0,pointStop,1);
SetStopInactivity(최소가격,봉수,PointStop);
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 첨부파일은 답변수식에 진입횟수를 모두 1로 놓고 확인한 결과입니다.
차트는 선물5분봉입니다.
"b"진입이 22년1월27일 4번 진입하고
"트레진입"이 22년1월28일 3번 진입하고 있습니다.
셋팅한대로 1번씩 진입하도록 수정해주셨으면 합니다.
아래수식은 제가 시뮬레이션에 사용한 수식입니다.
답변수식에 고점갱신부분을 추가한 내용입니다.
********************************************************************************
input : st(103000);
input : b진입횟수(1),손절진입횟수(1),트레진입횟수(1),최소변화진입횟수(1);
input : 손절고점갱신(3),트레고점갱신(4),최소변화고점갱신(5);
input : ls(0.5),tr(0.5),최소가격(0.5),봉수(10);
var : count(0);
var : b진입count(0),손절진입count(0),트레진입count(0),최소변화진입count(0);
var : T1(0),entry(0);
if Bdate != Bdate[1] Then
{
b진입count = 0;
손절진입count = 0;
트레진입count = 0;
최소변화진입count = 0;
}
if (MarketPosition == 1 and MarketPosition != MarketPosition[1]) Then
{
if IsEntryName("b") == true Then
b진입count = b진입count+1;
if IsEntryName("손절진입") == true Then
손절진입count = 손절진입count+1;
if IsEntryName("트레진입") == true Then
트레진입count = 트레진입count+1;
if IsEntryName("최소변화진입") == true Then
최소변화진입count = 최소변화진입count+1;
}
if stime >= st and b진입count < b진입횟수 then
Buy("b");
if MarketPosition == 0 Then
{
if TotalTrades > TotalTrades[1] Then
count = 0;
if DayHigh(0) > DayHigh(0)[1] Then
count = count+1;
if IsExitName("StopLoss",1) == true and 손절진입count < 손절진입횟수 and
ExitDate(1) == sDate and
count == 손절고점갱신 Then
Buy("손절진입");
if IsExitName("StopTrailing",1) == true and 트레진입count < 트레진입횟수 and
ExitDate(1) == sDate and
count == 트레고점갱신 Then
Buy("트레진입");
if IsExitName("StopInactivity",1) == true and 최소변화진입count < 최소변화진입횟수 and
ExitDate(1) == sDate and
count == 최소변화고점갱신 Then
Buy("최소변화진입");
}
SetStopLoss(ls,pointStop);
SetStopTrailing(tr,0,pointStop,1);
SetStopInactivity(최소가격,봉수,PointStop);