예스스탁
예스스탁 답변
2024-09-23 15:07:39
안녕하세요
예스스탁입니다.
1
var : 최소수익1(30),수익감소1(15);
var : 최소수익2(50),수익감소2(25);
var : HH(0),LL(0);
var : BX1(False),BX2(False);
var : SX1(False),SX2(False);
if MarketPosition == 1 Then
{
HH = Highest(H,BarsSinceEntry);
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "B_1" Then
BX1 = true;
if LatestExitName(0) == "B_2" Then
BX2 = true;
}
if BX1 == true and HH >= EntryPrice+PriceScale*최소수익1 and HH < EntryPrice+PriceScale*최소수익2 Then
ExitLong("B_1",AtStop,HH-PriceScale*수익감소1,"",1,1);
if BX2 == true and HH >= EntryPrice+PriceScale*최소수익2 Then
ExitLong("B_2",AtStop,HH-PriceScale*수익감소2,"",1,1);
}
Else
{
BX1 = False;
BX2 = False;
}
if MarketPosition == -1 Then
{
LL = lowest(L,BarsSinceEntry);
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "S_1" Then
SX1 = true;
if LatestExitName(0) == "S_2" Then
SX2 = true;
}
if SX1 == False and LL <= EntryPrice-PriceScale*최소수익1 and LL > EntryPrice-PriceScale*최소수익2 Then
ExitShort("S_1",AtStop,LL+PriceScale*수익감소1,"",1,1);
if SX2 == False and LL <= EntryPrice-PriceScale*최소수익2 Then
ExitShort("S_2",AtStop,LL+PriceScale*수익감소2,"",1,1);
}
Else
{
SX1 = False;
SX2 = False;
}
2
현재 청산식이 AtStop으로 수익이 감소할때 청산하게 되어 있는데
AtLimit으로 하면 단지 지정한 값이면 청산으로 익절과 비슷한 개념이 됩니다.
3
if MarketPosition == 1 and CountIf(C<O,10) == 10 Then
ExitLong();
if MarketPosition == -1 and CountIf(C>O,10) == 10 Then
ExitShort();
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 1. 국선에서 5계약을 진입하는데 아래 청산식에서 최소수익 달성후 수익감소시 청산을 1개씩만 하고 싶은데 B_2 청산이 한번 나오고 그 이후 봉에서 다시 B_2 청산이 나옵니다.
매수든 매도든 1개 진입신호에서 아래 청산식은 딱 1개씩만 적용되게 하고 싶습니다.
수정 부탁 드립니다.
var : 최소수익1(30),수익감소1(15);
var : 최소수익2(50),수익감소2(25);
var : HH(0),LL(0);
if MarketPosition == 1 Then
{
HH = Highest(H,BarsSinceEntry);
if HH >= EntryPrice+PriceScale*최소수익1 and HH < EntryPrice+PriceScale*최소수익2 Then
ExitLong("B_1",AtStop,HH-PriceScale*수익감소1,"",1,1);
if HH >= EntryPrice+PriceScale*최소수익2 Then
ExitLong("B_2",AtStop,HH-PriceScale*수익감소2,"",1,1);
}
if MarketPosition == -1 Then
{
LL = lowest(L,BarsSinceEntry);
if LL <= EntryPrice-PriceScale*최소수익1 and LL > EntryPrice-PriceScale*최소수익2 Then
ExitShort("S_1",AtStop,LL+PriceScale*수익감소1,"",1,1);
if LL <= EntryPrice-PriceScale*최소수익2 Then
ExitShort("S_2",AtStop,LL+PriceScale*수익감소2,"",1,1);
}
2. 그리고 atstop 대신에 atlimit를 쓰면 시뮬레이션에서 수익이 더 많이 나오던데
이유도 설명 부탁드립니다.
3. 음봉 또는 양봉이 연속해서 10개 나오면 현재 계약수에 관계없이 전량 청산하는 식도 부탁드립니다.