다음의 시스템거래를 설정하려고 합니다.
1) COND1 신호 발생시 매수/매도 (B1/S1)
2) B1/S1 + 3%이익 + COND2 신호 발생시 익절 (EL/SL)
3) 익절후 COND2 신호 발생시 매수/매도 (B2/S2)
4) B2/S2에서 COND1 신호 발생시 매수/매도 (B3/S3) (1과 동일)
5) 2~4 반복
이걸 구현하기 어려워서 'Level'이라는 임의적인 변수를 만들었습니다.
각 단계별로 Level 1~3로 올라가다가
전 과정이 반복되는 4단계에서 Level1으로 다시 낮추는 수식을 작성했습니다.
For Level = 0 To Level = 1
Begin
If COND1 == 1 Then Level = Level + 1;
If COND1 == -1 Then Level = Level + 1;
If COND1 == 1 Then Buy("B1");
If COND1 == -1 Then Sell("S1");
End
For Level = 1 To Level = 2
Begin
If C > EntryPrice * 1.03 AND COND2 == -1 Then Level = Level + 1;
If C < EntryPrice * 0.97 AND COND2 == 1 Then Level = Level + 1;
If C > EntryPrice * 1.03 AND COND2 == -1 Then ExitLong("EL");
If C < EntryPrice * 0.97 AND COND2 == 1 Then ExitShort("ES");
End
For Level = 2 To Level = 3
Begin
If COND2 == 1 Then Level = Level + 1;
If COND2 == -1 Then Level = Level + 1;
If COND2 == 1 Then Buy("B2");
If COND2 == -1 Then Sell("S2");
End
For Level = 3 To Level = 1
Begin
If COND1 == 1 Then Buy("B3");
If COND1 == -1 Then Sell("S3");
If COND1 == 1 Then Level = Level - 2;
If COND1 == -1 Then Level = Level - 2;
End
일단 지표로 Level을 확인해보니 1에서 바뀌지 않는 것으로 나옵니다.
각 단계별로 Level이 변하게 할 수 있을까요?
답변 3
예스스탁
예스스탁 답변
2022-12-27 16:10:34
안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
올려주신 내용에서 for문과 Level등의 변수는 붏필요한 것 같습니다.
특히 for문의 어떤 이유에서 사용하고자 하시는지 알수 없습니다.
무포지션이거나 S2로 진입된 경우에만 cond1 == 1 조건만족하면 매수진입(B1)
무포지션이거나 B2로 진입된 경우에만 cond1 == -1 조건만족하면 매도진입(S1)
B1으로 진입 후 3% 수익중에 cond1 == -1 조건만족하면 스위칭 매도진입(S2)
S1으로 진입 후 3% 수익중에 cond1 == 1 조건만족하면 스위칭 매수진입(B2)
올려주신 내용으로 판단하면 진입은 위와 같이 4가지 케이스입니다.
Buy나 Sell은 진입함수이므로 반대포지션 진입상태에서 발생하면 반대포지션 청산을 자동으로 하게 됩니다.
위 구조가 맞으시면 아래식 참고하시기 바랍니다.
If MarketPosition == 0 or (MarketPosition == -1 and IsEntryName("S2") == true Then
{
if COND1 == 1 Then
Buy("B1");
}
If MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("B2") == true Then
{
if COND1 == -1 Then
Sell("S1");
}
if MarketPosition == 1 and
IsEntryName("B1") == true and
C > EntryPrice+1.03 and Cond2 == -1 Then
Sell("S2");
if MarketPosition == 1 and
IsEntryName("S1") == true and
C < EntryPrice+0.97 and Cond2 == 1 Then
Buy("B2");
즐거운 하루되세요
> 민현종 님이 쓴 글입니다.
> 제목 : 단계별 시스템 거래를 위한 임의 변수 설정
> 다음의 시스템거래를 설정하려고 합니다.
1) COND1 신호 발생시 매수/매도 (B1/S1)
2) B1/S1 + 3%이익 + COND2 신호 발생시 익절 (EL/SL)
3) 익절후 COND2 신호 발생시 매수/매도 (B2/S2)
4) B2/S2에서 COND1 신호 발생시 매수/매도 (B3/S3) (1과 동일)
5) 2~4 반복
이걸 구현하기 어려워서 'Level'이라는 임의적인 변수를 만들었습니다.
각 단계별로 Level 1~3로 올라가다가
전 과정이 반복되는 4단계에서 Level1으로 다시 낮추는 수식을 작성했습니다.
For Level = 0 To Level = 1
Begin
If COND1 == 1 Then Level = Level + 1;
If COND1 == -1 Then Level = Level + 1;
If COND1 == 1 Then Buy("B1");
If COND1 == -1 Then Sell("S1");
End
For Level = 1 To Level = 2
Begin
If C > EntryPrice * 1.03 AND COND2 == -1 Then Level = Level + 1;
If C < EntryPrice * 0.97 AND COND2 == 1 Then Level = Level + 1;
If C > EntryPrice * 1.03 AND COND2 == -1 Then ExitLong("EL");
If C < EntryPrice * 0.97 AND COND2 == 1 Then ExitShort("ES");
End
For Level = 2 To Level = 3
Begin
If COND2 == 1 Then Level = Level + 1;
If COND2 == -1 Then Level = Level + 1;
If COND2 == 1 Then Buy("B2");
If COND2 == -1 Then Sell("S2");
End
For Level = 3 To Level = 1
Begin
If COND1 == 1 Then Buy("B3");
If COND1 == -1 Then Sell("S3");
If COND1 == 1 Then Level = Level - 2;
If COND1 == -1 Then Level = Level - 2;
End
일단 지표로 Level을 확인해보니 1에서 바뀌지 않는 것으로 나옵니다.
각 단계별로 Level이 변하게 할 수 있을까요?
최초신호 이후 신호가 발생하지 않습니다.
확인 부탁드립니
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 단계별 시스템 거래를 위한 임의 변수 설정
> 안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
올려주신 내용에서 for문과 Level등의 변수는 붏필요한 것 같습니다.
특히 for문의 어떤 이유에서 사용하고자 하시는지 알수 없습니다.
무포지션이거나 S2로 진입된 경우에만 cond1 == 1 조건만족하면 매수진입(B1)
무포지션이거나 B2로 진입된 경우에만 cond1 == -1 조건만족하면 매도진입(S1)
B1으로 진입 후 3% 수익중에 cond1 == -1 조건만족하면 스위칭 매도진입(S2)
S1으로 진입 후 3% 수익중에 cond1 == 1 조건만족하면 스위칭 매수진입(B2)
올려주신 내용으로 판단하면 진입은 위와 같이 4가지 케이스입니다.
Buy나 Sell은 진입함수이므로 반대포지션 진입상태에서 발생하면 반대포지션 청산을 자동으로 하게 됩니다.
위 구조가 맞으시면 아래식 참고하시기 바랍니다.
If MarketPosition == 0 or (MarketPosition == -1 and IsEntryName("S2") == true Then
{
if COND1 == 1 Then
Buy("B1");
}
If MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("B2") == true Then
{
if COND1 == -1 Then
Sell("S1");
}
if MarketPosition == 1 and
IsEntryName("B1") == true and
C > EntryPrice+1.03 and Cond2 == -1 Then
Sell("S2");
if MarketPosition == 1 and
IsEntryName("S1") == true and
C < EntryPrice+0.97 and Cond2 == 1 Then
Buy("B2");
즐거운 하루되세요
> 민현종 님이 쓴 글입니다.
> 제목 : 단계별 시스템 거래를 위한 임의 변수 설정
> 다음의 시스템거래를 설정하려고 합니다.
1) COND1 신호 발생시 매수/매도 (B1/S1)
2) B1/S1 + 3%이익 + COND2 신호 발생시 익절 (EL/SL)
3) 익절후 COND2 신호 발생시 매수/매도 (B2/S2)
4) B2/S2에서 COND1 신호 발생시 매수/매도 (B3/S3) (1과 동일)
5) 2~4 반복
이걸 구현하기 어려워서 'Level'이라는 임의적인 변수를 만들었습니다.
각 단계별로 Level 1~3로 올라가다가
전 과정이 반복되는 4단계에서 Level1으로 다시 낮추는 수식을 작성했습니다.
For Level = 0 To Level = 1
Begin
If COND1 == 1 Then Level = Level + 1;
If COND1 == -1 Then Level = Level + 1;
If COND1 == 1 Then Buy("B1");
If COND1 == -1 Then Sell("S1");
End
For Level = 1 To Level = 2
Begin
If C > EntryPrice * 1.03 AND COND2 == -1 Then Level = Level + 1;
If C < EntryPrice * 0.97 AND COND2 == 1 Then Level = Level + 1;
If C > EntryPrice * 1.03 AND COND2 == -1 Then ExitLong("EL");
If C < EntryPrice * 0.97 AND COND2 == 1 Then ExitShort("ES");
End
For Level = 2 To Level = 3
Begin
If COND2 == 1 Then Level = Level + 1;
If COND2 == -1 Then Level = Level + 1;
If COND2 == 1 Then Buy("B2");
If COND2 == -1 Then Sell("S2");
End
For Level = 3 To Level = 1
Begin
If COND1 == 1 Then Buy("B3");
If COND1 == -1 Then Sell("S3");
If COND1 == 1 Then Level = Level - 2;
If COND1 == -1 Then Level = Level - 2;
End
일단 지표로 Level을 확인해보니 1에서 바뀌지 않는 것으로 나옵니다.
각 단계별로 Level이 변하게 할 수 있을까요?
예스스탁
예스스탁 답변
2022-12-27 17:31:53
안녕하세요
예스스탁입니다.
식을 수정해 드립니다. 아래 구조로 완성하시기 바랍니다.
If MarketPosition == 0 or (MarketPosition == -1 and IsEntryName("S2") == true) Then
{
if COND1 == 1 Then
Buy("B1");
}
If MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("B2") == true) Then
{
if COND1 == -1 Then
Sell("S1");
}
if MarketPosition == 1 and
IsEntryName("B1") == true and
C > EntryPrice*1.03 and
Cond2 == -1 Then
Sell("S2");
if MarketPosition == -1 and
IsEntryName("S1") == true and
C < EntryPrice*0.97 and
Cond2 == 1 Then
Buy("B2");
즐거운 하루되세요
> 민현종 님이 쓴 글입니다.
> 제목 : Re : Re : 단계별 시스템 거래를 위한 임의 변수 설정
> 최초신호 이후 신호가 발생하지 않습니다.
확인 부탁드립니
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 단계별 시스템 거래를 위한 임의 변수 설정
> 안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해하지 못했습니다.
올려주신 내용에서 for문과 Level등의 변수는 붏필요한 것 같습니다.
특히 for문의 어떤 이유에서 사용하고자 하시는지 알수 없습니다.
무포지션이거나 S2로 진입된 경우에만 cond1 == 1 조건만족하면 매수진입(B1)
무포지션이거나 B2로 진입된 경우에만 cond1 == -1 조건만족하면 매도진입(S1)
B1으로 진입 후 3% 수익중에 cond1 == -1 조건만족하면 스위칭 매도진입(S2)
S1으로 진입 후 3% 수익중에 cond1 == 1 조건만족하면 스위칭 매수진입(B2)
올려주신 내용으로 판단하면 진입은 위와 같이 4가지 케이스입니다.
Buy나 Sell은 진입함수이므로 반대포지션 진입상태에서 발생하면 반대포지션 청산을 자동으로 하게 됩니다.
위 구조가 맞으시면 아래식 참고하시기 바랍니다.
If MarketPosition == 0 or (MarketPosition == -1 and IsEntryName("S2") == true Then
{
if COND1 == 1 Then
Buy("B1");
}
If MarketPosition == 0 or (MarketPosition == 1 and IsEntryName("B2") == true Then
{
if COND1 == -1 Then
Sell("S1");
}
if MarketPosition == 1 and
IsEntryName("B1") == true and
C > EntryPrice+1.03 and Cond2 == -1 Then
Sell("S2");
if MarketPosition == 1 and
IsEntryName("S1") == true and
C < EntryPrice+0.97 and Cond2 == 1 Then
Buy("B2");
즐거운 하루되세요
> 민현종 님이 쓴 글입니다.
> 제목 : 단계별 시스템 거래를 위한 임의 변수 설정
> 다음의 시스템거래를 설정하려고 합니다.
1) COND1 신호 발생시 매수/매도 (B1/S1)
2) B1/S1 + 3%이익 + COND2 신호 발생시 익절 (EL/SL)
3) 익절후 COND2 신호 발생시 매수/매도 (B2/S2)
4) B2/S2에서 COND1 신호 발생시 매수/매도 (B3/S3) (1과 동일)
5) 2~4 반복
이걸 구현하기 어려워서 'Level'이라는 임의적인 변수를 만들었습니다.
각 단계별로 Level 1~3로 올라가다가
전 과정이 반복되는 4단계에서 Level1으로 다시 낮추는 수식을 작성했습니다.
For Level = 0 To Level = 1
Begin
If COND1 == 1 Then Level = Level + 1;
If COND1 == -1 Then Level = Level + 1;
If COND1 == 1 Then Buy("B1");
If COND1 == -1 Then Sell("S1");
End
For Level = 1 To Level = 2
Begin
If C > EntryPrice * 1.03 AND COND2 == -1 Then Level = Level + 1;
If C < EntryPrice * 0.97 AND COND2 == 1 Then Level = Level + 1;
If C > EntryPrice * 1.03 AND COND2 == -1 Then ExitLong("EL");
If C < EntryPrice * 0.97 AND COND2 == 1 Then ExitShort("ES");
End
For Level = 2 To Level = 3
Begin
If COND2 == 1 Then Level = Level + 1;
If COND2 == -1 Then Level = Level + 1;
If COND2 == 1 Then Buy("B2");
If COND2 == -1 Then Sell("S2");
End
For Level = 3 To Level = 1
Begin
If COND1 == 1 Then Buy("B3");
If COND1 == -1 Then Sell("S3");
If COND1 == 1 Then Level = Level - 2;
If COND1 == -1 Then Level = Level - 2;
End
일단 지표로 Level을 확인해보니 1에서 바뀌지 않는 것으로 나옵니다.
각 단계별로 Level이 변하게 할 수 있을까요?