예스스탁
예스스탁 답변
2023-01-18 15:28:55
안녕하세요
예스스탁입니다.
input : 타주기분(30),P(5);
input : 익절틱수(40),손절틱수(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0), Total_Profit(0), Profit(0);
var : sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0),entry(0);
Array : CC[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
Condition3 = False;
Total_Profit = NetProfit;
entry = 0;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
# 매매 개시 후 총 이익이 200 포인트가 되면 당일 거래 종료
# 매매 개시 후 총 손실이 150 포인트가 되면 당일 거래 종료
Profit = NetProfit - Total_Profit;
if Profit >= 200 or Profit <= -150 Then
{
Condition3 = True;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
for cnt = 1 to 99
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P+2] > 0 then
{
sum1 = 0;
sum2 = 0;
sum3 = 0;
for cnt = 0 to P-1
{
sum1 = sum1 + CC[cnt];
sum2 = sum2 + CC[cnt+1];
sum3 = sum3 + CC[cnt+2];
}
mav1 = sum1/P;
mav2 = sum2/P;
mav3 = sum3/P;
if Condition3 == False and MarketPosition >= 0 and mav1 < mav2 and mav2 > mav3 Then
Sell("s",AtMarket,Def,1);
if Condition3 == False and MarketPosition <= 0 and mav1 > mav2 and mav2 < mav3 Then
Buy("b",AtMarket,Def,1);
}
if Condition3 == False Then
{
# 매수 2번 연속 손절이면 매도로 진입
if MarketPosition == 0 and
entry > 1 and
(MarketPosition(1) == 1 and ExitName(1) == "StopLoss") and
(MarketPosition(2) == 1 and ExitName(2) == "StopLoss") Then
{
Sell("s2",AtMarket,Def,1);
}
# 매도 2번 연속 손절이면 매수로 진입
if MarketPosition == 0 and
entry > 1 and
(MarketPosition(1) == -1 and ExitName(1) == "StopLoss") and
(MarketPosition(2) == -1 and ExitName(2) == "StopLoss") Then
{
Buy("b2",AtMarket,Def,1);
}
# 매수 후 20 포인트 이상 상승 후 하락하여 진입가에 오면 스위칭
if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+20 Then
{
Sell("s3",AtStop,EntryPrice(0));
}
# 매도 후 20 포인트 이상 하락 후 상승하여 진입가에 오면 스위칭
if MarketPosition == -1 and Lowest(L,BarsSinceEntry) <= EntryPrice-20 Then
{
Buy("b3",AtStop,EntryPrice(0));
}
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
즐거운 하루되세요
> 동백초보 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
> 안녕하세요
아래 수식에 다음 사항을 추가하려고 합니다.
부탁 드립니다.
1. 손절이 연속 2번이 되면 2번째 손절 후 다음 3분봉 시가에 반대로 진입힌다.
매수 2번 연속 손절이면 매도로 진입/ 매도 2번 연속 손절이면 매수로 진입
2. 매수 후 20 포인트 이상 상승 후 하락하여 진입가에 오면 스위칭.
매도 후 20 포인트 이상 하락 후 상승하여 진입가에 오면 스위칭
3. 매매 개시 후 총 이익이 200 포인트가 되면 당일 거래 종료
매매 개시 후 총 손실이 150 포인트가 되면 당일 거래 종료
항상 감사합니다.
nput : 타주기분(30),P(5);
input : 익절틱수(40),손절틱수(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0);
Array : CC[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
for cnt = 1 to 99
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P+2] > 0 then
{
sum1 = 0;
sum2 = 0;
sum3 = 0;
for cnt = 0 to P-1
{
sum1 = sum1 + CC[cnt];
sum2 = sum2 + CC[cnt+1];
sum3 = sum3 + CC[cnt+2];
}
mav1 = sum1/P;
mav2 = sum2/P;
mav3 = sum3/P;
if MarketPosition >= 0 and mav1 < mav2 and mav2 > mav3 Then
Sell("s",AtMarket,Def,1);
if MarketPosition <= 0 and mav1 > mav2 and mav2 < mav3 Then
Buy("b",AtMarket,Def,1);
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);