예스스탁
예스스탁 답변
2023-03-13 13:59:35
안녕하세요
예스스탁입니다.
아래 수식구조 참고하시기 바랍니다.
진입횟수별로 지정한 금액에서 일저우%로 진입하고
청산은 추가진입할때마다 평단가대비 1% 2% 청산이 한번씩 발생할 수 있습니다.
input : 금액(10000000);
var : TC(0),BX1(False),BX2(False),SX1(false),SX2(False);
#매수진입
if Condition1 == true Then
{
if MarketPosition <= 0 Then
Buy("b1",OnClose,Def,Floor((금액*0.2)/C));
if MarketPosition == 1 Then
{
if MaxEntries == 1 Then
Buy("b2",OnClose,Def,Floor((금액*0.3)/C));
if MaxEntries == 2 Then
Buy("b3",OnClose,Def,Floor((금액*0.5)/C));
}
}
#매도진입
if Condition2 == true Then
{
if MarketPosition >= 0 Then
Sell("s1",OnClose,Def,Floor((금액*0.2)/C));
if MarketPosition == -1 Then
{
if MaxEntries == 1 Then
Sell("s2",OnClose,Def,Floor((금액*0.3)/C));
if MaxEntries == 2 Then
Sell("s3",OnClose,Def,Floor((금액*0.5)/C));
}
}
#매수포지션 청산
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
TC = CurrentContracts;
BX1 = true;
BX2 = true;
}
if LatestExitName(0) == "BX1" Then
BX1 = False;
if LatestExitName(0) == "BX2" Then
BX2 = False;
if BX1 == true Then
ExitLong("BX1",AtLimit,AvgEntryPrice*1.01,"",Floor(TC*0.2),1);
if BX2 == true Then
ExitLong("BX2",AtLimit,AvgEntryPrice*1.02,"",Floor(TC*0.3),1);
}
Else
{
BX1 = False;
BX2 = False;
}
#매도포지션 청산
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
TC = CurrentContracts;
SX1 = true;
SX2 = true;
}
if LatestExitName(0) == "SX1" Then
SX1 = False;
if LatestExitName(0) == "SX2" Then
SX2 = False;
if SX1 == true Then
ExitShort("SX1",AtLimit,AvgEntryPrice*0.99,"",Floor(TC*0.2),1);
if SX2 == true Then
ExitShort("SX2",AtLimit,AvgEntryPrice*0.98,"",Floor(TC*0.3),1);
}
Else
{
SX1 = False;
BX2 = False;
}
즐거운 하루되세요
> 칭기스칸 님이 쓴 글입니다.
> 제목 : 수식 문의드립니다.
> 수고하십니다.
아래 수식 작성 부탁드립니다.
진입, 청산식은 따로 있다고 하고
매수진입: Condition1
매도진입: Condition2
매수청산: Condition3
매도청산: Condition4
진입, 청산 금액을
진입 조건이 첫번째 충족시 20% 진입, 두번째 충족시 30% 진입, 세번째 충족시 50% 진입
청산은 1% 수익시 20% 청산, 2% 수익시 30% 청산, 리버스 진입시 나머지 전부 청산
이렇게 적용하는 수식 부탁드립니다.
감사합니다.