커뮤니티
barssinceexit를 이용한 청산이후 N개 봉 이후에 조건 만족시 진입 식
2017-05-11 17:00:18
156
글번호 109473
파라볼릭을 이용한 진입 및 청산식입니다.
첫 진입에 cnt라는 변수에 +1을 해주어 그 다음부터는
barssinceexit(1)로 청산이후의 봉 개수를 세주어
봉개수가 10개 또는 N개의 봉이 지난 이후에 진입을 하려고합니다.
이말은 즉, 파라볼릭에서 하락세일 때 하락세가 10일(일봉기준)이상
지속되고나서 추세가 반전되었을 때 들어가려고 하는 것 입니다.
그런데 이게 작동이 안되어서 BarsSinceExit를 빼고해도
"Buy11"의 첫 진입으로 들어가고,
청산이 일어나고,
그 뒤로는 "Buy22"의 진입식으로 들어가게 하려고하는데
작동하질 않습니다.
첫진입식으로 진입하고 이후에는 청산하고나서 10일뒤 또는 N일 뒤에 진입 할 수 있는 식을
만들려고하는 것입니다.
감사합니다.
Input : af(0.02), maxAF(0.2);
var : cnt(0);
var1 = SAR(af,maxAF);
#첫진입
If MarketPosition == 0 and cnt == 0 Then
{
If var1 < C Then
Buy("Buy11",AtMarket);
cnt = (cnt + 1);
}
#첫진입 이후의 진입
If MarketPosition == 0 and BarsSinceExit(1) > 10 and cnt == 1 Then
{
If var1 < C Then
Buy("Buy22",AtMarket);
}
#청산
If MarketPosition == 1 Then
{
If var1 > C Then
ExitLong("EL",AtMarket);
}
답변 1
예스스탁 예스스탁 답변
2017-05-12 11:01:28
안녕하세요
예스스탁입니다.
작성하신 식에서 cnt는 buy에 따라 1씩 증가하는것이 아니고
If MarketPosition == 0 and cnt == 0 Then에만 종속됩니다.
하나의 if문에 복수의 실행문이 있으면 {}로 묶어 주어야 합니다.
문의하신 내용은 TotalTrades로 제어하시면 됩니다.
TotalTrades는 청산된 거래의 횟수입니다.
Input : af(0.02), maxAF(0.2);
var : cnt(0);
var1 = SAR(af,maxAF);
#전체 첫진입
If MarketPosition == 0 and TotalTrades == 0 Then
{
If var1 < C Then
Buy("Buy11",AtMarket);
}
#두번째 진입부터
If MarketPosition == 0 and BarsSinceExit(1) > 10 and TotalTrades >= 1 Then
{
If var1 < C Then
Buy("Buy22",AtMarket);
}
#청산
If MarketPosition == 1 Then
{
If var1 > C Then
ExitLong("EL",AtMarket);
}
즐거운 하루되세요
> 노르웨이 님이 쓴 글입니다.
> 제목 : barssinceexit를 이용한 청산이후 N개 봉 이후에 조건 만족시 진입 식
> 파라볼릭을 이용한 진입 및 청산식입니다.
첫 진입에 cnt라는 변수에 +1을 해주어 그 다음부터는
barssinceexit(1)로 청산이후의 봉 개수를 세주어
봉개수가 10개 또는 N개의 봉이 지난 이후에 진입을 하려고합니다.
이말은 즉, 파라볼릭에서 하락세일 때 하락세가 10일(일봉기준)이상
지속되고나서 추세가 반전되었을 때 들어가려고 하는 것 입니다.
그런데 이게 작동이 안되어서 BarsSinceExit를 빼고해도
"Buy11"의 첫 진입으로 들어가고,
청산이 일어나고,
그 뒤로는 "Buy22"의 진입식으로 들어가게 하려고하는데
작동하질 않습니다.
첫진입식으로 진입하고 이후에는 청산하고나서 10일뒤 또는 N일 뒤에 진입 할 수 있는 식을
만들려고하는 것입니다.
감사합니다.
Input : af(0.02), maxAF(0.2);
var : cnt(0);
var1 = SAR(af,maxAF);
#첫진입
If MarketPosition == 0 and cnt == 0 Then
{
If var1 < C Then
Buy("Buy11",AtMarket);
cnt = (cnt + 1);
}
#첫진입 이후의 진입
If MarketPosition == 0 and BarsSinceExit(1) > 10 and cnt == 1 Then
{
If var1 < C Then
Buy("Buy22",AtMarket);
}
#청산
If MarketPosition == 1 Then
{
If var1 > C Then
ExitLong("EL",AtMarket);
}