예스스탁
예스스탁 답변
2022-09-06 10:59:46
안녕하세요
예스스탁입니다.
강제청산은 각 진입별로 동작합니다.
다만 설정은 최종 지정된 하나의 설정으로 적용됩니다.
만약 각 진입명별로 손절이나 익절을 다르게 적요하신 다면
아래와 같이 일반함수로 풀어서 작성하셔야 합니다.
input : Profit1(10),Profit2(15);
input : LossCut1(10),LossCut2(15);
var : BE1(0),BE2(0);
var : SE1(0),sE2(0);
#매수진입
if MarketPosition == 1 Then
{
#B1진입발생하면 BE1에 진입가 저장
if LatestEntryName(0) == "B1" Then
BE1 = LatestEntryPrice(0);
#B2진입발생하면 BE2에 진입가 저장
if LatestEntryName(0) == "B1" Then
BE2 = LatestEntryPrice(0);
if BE1 > 0 Then
{
ExitLong("bp1",AtLimit,BE1*(1+Profit1/100),"B1");
ExitLong("bl1",AtLimit,BE1*(1-LossCut1/100),"B1");
}
if BE2 > 0 Then
{
ExitLong("bp2",AtLimit,BE2*(1+Profit2/100),"B1");
ExitLong("bl2",AtLimit,BE2*(1-LossCut2/100),"B1");
}
}
Else #매수포지션이 아닐때는 0으로 초기화
{
BE1 = 0;
BE2 = 0;
}
#매도진입
if MarketPosition == 1 Then
{
#S1진입발생하면 SE1에 진입가 저장
if LatestEntryName(0) == "S1" Then
BE1 = LatestEntryPrice(0);
#S2진입발생하면 SE2에 진입가 저장
if LatestEntryName(0) == "S2" Then
SE2 = LatestEntryPrice(0);
if SE1 > 0 Then
{
ExitShort("sp1",AtLimit,SE1*(1+Profit1/100),"S1");
ExitShort("sl1",AtLimit,SE1*(1-LossCut1/100),"S1");
}
if SE2 > 0 Then
{
ExitShort("sp2",AtLimit,SE2*(1+Profit2/100),"S2");
ExitShort("sl2",AtLimit,SE2*(1-LossCut2/100),"S2");
}
}
Else #매도포지션이 아닐때는 0으로 초기화
{
SE1 = 0;
SE2 = 0;
}
즐거운 하루되세요
> 대가들의매매 님이 쓴 글입니다.
> 제목 : 피라미딩 손절 익절
> 안녕하세요?
하나의 프로그램에 피라미딩 진입이 두개 있을경우
예를 들어 S1 , S2 진입이 두개있을경우 ..
진입별 손절 , 익절을 따로 설정이 가능한가요?
현재 진입이 두개 들어간 경우에 아래와 같이 하면 S1 , S2 두개의 진입에 똑같은 손절하고 익절이 설정되는건가요?
아니면 S1만 손절 익절이 설정되는가요?
if IsEntryName("S1") then { SetStopLoss(LossCut,PercentStop); SetStopProfittarget(Profit ,PercentStop); }