예스스탁
예스스탁 답변
2019-10-23 11:49:47
안녕하세요
예스스탁입니다.
Input : 손절(20),익절(15),익절하락(3);
input : P1(30), P2(120), p3(240);
input : StartTime(090000),EndTime(050000);
var : tx(0),X(false),Tcond(false),tt(0);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
######## 진입제한
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then
{
Tcond = false;
}
## 진입
if Tcond == true and marketposition == 0
and crossup(var1,var2) Then
{
if Condition1 == false then
buy("B1");
Else
buy("B1■");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then
{
if Condition1 == false then
sell("S1");
Else
sell("S1■");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then
{
if Condition1 == false then
buy("B2");
Else
buy("B2■");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then
{
if Condition1 == false then
sell("S2");
Else
sell("S2■");
}
## 청산
if MarketPosition == 1 then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if MarketPosition == -1 Then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then
{
if MarketPosition == 1 Then
{
ExitLong("BE6");
}
if MarketPosition == -1 Then
{
ExitShort("SE6");
}
}
if TotalTrades > TotalTrades[1] then
{
if IsExitName("StopLoss",1) == true then
{
tt = tt - 40;
if tt >= 0 Then
{
tt = 0;
Condition1 = false;
}
if tt > -120 then
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
}
else
{
Condition1 = true;
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★");
Text_SetSize(tx,20);
}
}
if IsExitName("StopTrailing",1) == true then
{
tt = tt + 30;
if tt >= 0 Then
{
tt = 0;
X = true;
Condition1 = false;
}
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,2);
//Text_SetSize 폰트 사이즈
//Text_Setstyle 좌우상하 정렬
}
}
즐거운 하루되세요
> 라떼처럼 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 안녕하세요 작성해주신 수식 감사합니다.
몇가지만 추가 부탁드립니다.
최초 ★(누적 -120) 이후 익절로 인한 SetStopTrailing 위 tx 가 "0"이 될때 까지
매수매도(B1, S1, B2, S2) 위에 ■를 표시 하고 싶습니다.
"0"이후 다시 ★ 발생되면 ■ 표시 반복합니다.
목적은 스팟을 이용하여 "■"표시된 매수매도(B1, S1, B2, S2)만 인식하여 진입하기 위함입니다.
그럼 부탁드립니다.
예)
B2 --> SetStopTrailing : 0
B1 --> SetStopLoss : -40
B2 --> SetStopLoss : -80
S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시
B2 ■ --> SetStopLoss : -160 ★
B1 ■ --> SetStopTrailing :-130 ★
B2 ■ --> SetStopTrailing :-100
S1 ■ --> SetStopTrailing :-70
B1 ■ --> SetStopTrailing :-40
B1 ■ --> SetStopTrailing :-10
S2 ■ --> SetStopTrailing : 0 # 0 끝, 다음 매수 매도에 ■ 표시 종료
B1 --> SetStopTrailing : -40
B2 --> SetStopLoss : -80
S1 --> SetStopLoss : -120 ★ # -120시작, 매수 매도에 ■ 표시
B2 ■
Input : 손절(20),익절(15),익절하락(3);
input : P1(30), P2(120), p3(240);
input : StartTime(090000),EndTime(050000);
var : tx(0),X(false);
var: Tcond(false);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
######## 진입제한
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then
{
Tcond = false;
}
## 진입
if Tcond == true and marketposition == 0
and crossup(var1,var2) Then {
buy("B1");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then {
sell("S1");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then {
buy("B2");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then {
sell("S2");
}
## 청산
if MarketPosition == 1 then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if MarketPosition == -1 Then {
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then {
if MarketPosition == 1 Then {
ExitLong("BE6");
}
if MarketPosition == -1 Then {
ExitShort("SE6");
}
}
var : tt(0);
if TotalTrades > TotalTrades[1] then
{
if IsExitName("StopLoss",1) == true then
{
tt = tt - 40;
if tt >= 0 Then
tt = 0;
if tt > -120 then
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
}
else
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★");
Text_SetSize(tx,20);
}
}
if IsExitName("StopTrailing",1) == true then
{
tt = tt + 30;
if tt >= 0 Then
{
tt = 0;
X = true;
}
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,2);
//Text_SetSize 폰트 사이즈
//Text_Setstyle 좌우상하 정렬
}
}