예스스탁
예스스탁 답변
2021-07-16 11:03:09
안녕하세요
예스스탁입니다.
일괄로 청산하면 이후에 무포지션이 되고
다시 매수진입조건이 만족하면 진입이 가능합니다.
청산명에 진입명을 지정하면 청산조건만족시 해당 진입만 청산하게 됩니다.
다름이름으로 진입한 매수는 청산을 하지 못하므로 그대로 계속 매수상태가 됩니다.
BA1~BA5로 매수진입을 하고
condition1조건만족 후 한봉씩 청산하고자 하시면 아래와 같이 이름을 지정해 주시면 됩니다.
물론 아래의 경우에도 기존 일괄청산 후 4개봉 이내에 발생했던 매수신호는 나올수 없습니다.
atstop이나 atlimit함수는 신호발생되는 조건입니다.
다음봉에서 지정한 가격까지 시세하락이 없으면 신호가 발생할수 없어
onclose로 작성해 드립니다. 구사하시는 전략에 따라 변경하시기 바랍니다.
if MarketPosition == 1 Then
{
if condition1 == true then
{
exitlong("SA1", onclose, DEf, "BA1");
}
if condition1[1] == true then
{
exitlong("SA2", onclose, DEf, "BA2");
}
if condition1[2] == true then
{
exitlong("SA3", onclose, DEf, "BA3");
}
if condition1[3] == true then
{
exitlong("SA4", onclose, DEf, "BA4");
}
if condition1[4] == true then
{
exitlong("SA5", onclose, DEf, "BA5");
}
}
즐거운 하루되세요
> 타이탄 님이 쓴 글입니다.
> 제목 : 이해가 잘 안가는 부분이 있습니다.
> if **** then {
buy("BA1", onclose)
}
~~
if **** then {
buy("BA5", onclose)
}
if condition1 == true then {
exitlong("SA", onclose, DEf);
}
***
원래는 위와 같은 방식으로 시스템 트레이딩을 이용했고, 피라미딩 진입 시 한 번에 매도하려는 경우 주문 체결에 대한 문제가 있어 매도가 누락되는 경우가 많았습니다.
BA는 BA1부터 BA5까지 존재합니다.
예스랭귀지로는 이 점을 해결할 방법이 없다 하여 다른 방법을 생각하던 중, '각각 주문을 다른 타이밍에 들어가게만 하면 되겠구나!'하는 생각이 들어 아래와 같은 수식을 작성 중입니다.
***
if **** then {
buy("BA1", onclose)
}
~~
if **** then {
buy("BA5", onclose)
}
if condition1 == true then {
exitlong("SA1", onclose, DEf, "BA1");
}
if condition1[1] == true then {
exitlong("SA2", atstop, nextbaropen*0.98, "BA1");
}
(위 수식을 각각 0.96~0.9가 될 때까지 반복)
***
그런데 위와 같은 수식을 저장하고 나면, 기존에 있던 시스템 트레이딩 매수 진입 타이밍에 매수 진입이 안되는 경우가 있습니다.
같은 BA1 매수 타이밍인데, 어떤 것은 그대로 남고 어떤 것은 사라집니다.
그 이유가 무엇인가요?