예스스탁
예스스탁 답변
2024-09-27 14:03:21
안녕하세요
예스스탁입니다.
진입후 각 청산이 1번만 발생하게 되어 있습니다.
다만 매수청산과 매도청산식이 하나의 수식이면
변수가 달라야 합니다.
if MarketPosition == 1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "B_1" Then
Condition1 = true;
if LatestExitName(0) == "B_2" Then
Condition2 = true;
if LatestExitName(0) == "B_3" Then
Condition3 = true;
}
if Condition1 == False and DParity2 < 99.90 Then
Exitlong("B_1",AtStop,NextBarOpen-PriceScale*15,"",1,1);
if Condition2 == False and DParity2 < 99.80 Then
Exitlong("B_2",AtStop,NextBarOpen-PriceScale*20,"",1,1);
if Condition3 == False and DParity2 < 99.70 Then
Exitlong("B_3",AtStop,NextBarOpen-PriceScale*25,"",1,1);
}
Else
{
Condition1 = False;
Condition2 = False;
Condition3 = False;
}
if MarketPosition == -1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "S_1" Then
Condition4 = true;
if LatestExitName(0) == "S_2" Then
Condition5 = true;
if LatestExitName(0) == "S_3" Then
Condition6 = true;
}
if Condition4 == False and DParity2 > 100.10 Then
ExitShort("S_1",AtStop,NextBarOpen+PriceScale*15,"",1,1);
if Condition5 == False and DParity2 > 100.20 then
ExitShort("S_2",AtStop,NextBarOpen+PriceScale*20,"",1,1);
if Condition6 == False and DParity2 > 100.30 Then
ExitShort("S_3",AtStop,NextBarOpen+PriceScale*25,"",1,1);
}
Else
{
Condition4 = False;
Condition5 = False;
Condition6 = False;
}
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 청산식이 잘 안 먹힙니다.
한번 봐주시면 좋겠습니다.
false, true 쪽이 잘못인지, 아니면 다른 문제가 있는건지 모르겠습니다.
예를 들어 "B_2"이 한번 나오면 바로 뒤에 "B_2" 청산이 다시 나오면 안되는데 나옵니다.
전체적으로 수식이 잘못된 게 있는지 확인 부탁 드리겠습니다.
제가 궁극적으로 원하는 것은 한번 나온 청산식은
진입신호가 종료되기 전까지 두번 나오지 않는 것을 원합니다.
그게 안된다면 연달아서라도 같은 신호가 나오지 않기를 바랍니다.
if MarketPosition == 1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "B_1" Then
Condition1 = true;
if LatestExitName(0) == "B_2" Then
Condition2 = true;
if LatestExitName(0) == "B_3" Then
Condition3 = true;
}
if Condition1 == False and DParity2 < 99.90 Then
Exitlong("B_1",AtStop,NextBarOpen-PriceScale*15,"",1,1);
if Condition2 == False and DParity2 < 99.80 Then
Exitlong("B_2",AtStop,NextBarOpen-PriceScale*20,"",1,1);
if Condition3 == False and DParity2 < 99.70 Then
Exitlong("B_3",AtStop,NextBarOpen-PriceScale*25,"",1,1);
}
Else
{
Condition1 = False;
Condition2 = False;
Condition3 = False;
}
//-----------------------------------------------------------------
if MarketPosition == -1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "S_1" Then
Condition1 = true;
if LatestExitName(0) == "S_2" Then
Condition2 = true;
if LatestExitName(0) == "S_3" Then
Condition3 = true;
}
if Condition1 == False and DParity2 > 100.10 Then
ExitShort("S_1",AtStop,NextBarOpen+PriceScale*15,"",1,1);
if Condition2 == False T and DParity2 > 100.20 then
ExitShort("S_2",AtStop,NextBarOpen+PriceScale*20,"",1,1);
if Condition3 == False and DParity2 > 100.30 Then
ExitShort("S_3",AtStop,NextBarOpen+PriceScale*25,"",1,1);
}
Else
{
Condition1 = False;
Condition2 = False;
Condition3 = False;
}