예스스탁
예스스탁 답변
2022-07-20 11:14:51
안녕하세요
예스스탁입니다.
현재 첫진입+추가진입5회로 총 6번의 진입이 발생합니다.
6번째 진입은 3%로 임의로 추가해 드립니다.
각 진입별로 익절을 설정하려면 각 진입별 진입가를 모두 저장해야 합니다.
수식이 값저장이 봉완성시에 되므로 진입 봉에서 익절에 도달하면 청산할수가 없으므로
각 진입과 동시에 진입봉에서만 익절신호를 낼수 있는 내용까지 추가해야 합니다.
아래 내용을 참고하시기 바랍니다.
input : P(20),per1(2),per2(5),per3(10),per4(15),per5(20);
input : 익절1(1),익절2(1.3),익절3(1.7),익절4(2),익절5(2.5),익절6(3);
var1 = rsi(p);
if MarketPosition == 0 and CrossDown(var1,30) Then
{
Buy("b1",OnClose,Def,1);
ExitLong("bx1",AtLimit,c*(1+익절1/100),"b1");
}
if MarketPosition == 1 Then
{
if L > EntryPrice*(1-per1/100) Then
{
Buy("b2",AtLimit,EntryPrice*(1-per1/100),1);
ExitLong("bx2",AtLimit,min(NextBarOpen,EntryPrice*(1-per1/100))*(1+익절2/100),"b2");
}
if L > EntryPrice*(1-per2/100) Then
{
Buy("b3",AtLimit,EntryPrice*(1-per2/100),1);
ExitLong("bx3",AtLimit,min(NextBarOpen,EntryPrice*(1-per2/100))*(1+익절3/100),"b3");
}
if L > EntryPrice*(1-per3/100) Then
{
Buy("b4",AtLimit,EntryPrice*(1-per3/100),1);
ExitLong("bx4",AtLimit,min(NextBarOpen,EntryPrice*(1-per3/100))*(1+익절4/100),"b4");
}
if L > EntryPrice*(1-per4/100) Then
{
Buy("b5",AtLimit,EntryPrice*(1-per4/100),1);
ExitLong("bx5",AtLimit,min(NextBarOpen,EntryPrice*(1-per4/100))*(1+익절5/100),"b5");
}
if L > EntryPrice*(1-per5/100) Then
{
Buy("b6",AtLimit,EntryPrice*(1-per5/100),1);
ExitLong("bx6",AtLimit,min(NextBarOpen,EntryPrice*(1-per5/100))*(1+익절6/100),"b6");
}
#각 진입별 가격 저
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b1" Then
value1 = LatestEntryPrice(0);
if LatestEntryName(0) == "b2" Then
value2 = LatestEntryPrice(0);
if LatestEntryName(0) == "b3" Then
value3 = LatestEntryPrice(0);
if LatestEntryName(0) == "b4" Then
value4 = LatestEntryPrice(0);
if LatestEntryName(0) == "b5" Then
value5 = LatestEntryPrice(0);
if LatestEntryName(0) == "b6" Then
value6 = LatestEntryPrice(0);
}
if value1 > 0 Then
ExitLong("bx1.",AtLimit,value1*(1+익절1/100),"b1");
if value2 > 0 Then
ExitLong("bx2.",AtLimit,value2*(1+익절2/100),"b2");
if value3 > 0 Then
ExitLong("bx3.",AtLimit,value3*(1+익절3/100),"b3");
if value4 > 0 Then
ExitLong("bx4.",AtLimit,value4*(1+익절4/100),"b4");
if value5 > 0 Then
ExitLong("bx5.",AtLimit,value5*(1+익절5/100),"b5");
if value6 > 0 Then
ExitLong("bx6.",AtLimit,value6*(1+익절6/100),"b6");
}
Else
{
value1 = 0;
value2 = 0;
value3 = 0;
value4 = 0;
value5 = 0;
value6 = 0;
}
if sdate != sdate[1] Then
{
SetStopEndofday(0);
if DayOfWeek(sDate) == 5 Then
{
value1 = DateToJulian(sDate);
Value2 = JulianToDate(value1+7);
if Value2 > sDate+30 Then
SetStopEndofday(020000);
}
}
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : 기존 수식에서 청산 관련 일부 변경 요청건입니다.
> 항상 도움을 주셔서 감사합니다.
조금만 더 노력해서 예스스탁 플랫폼에서 수익이 날수있도록 노력하겠습니다.
조금만 도움을 주시면 감사합니다.
아래 수식은 담당자님이 알려주신 수식입니다.
해당 수식에서 청산관련 다음과 같이 고치고 싶습니다.
진입계약수별로 청산수익률을 다르게 설정하고 싶습니다.
예를들면
1계약진입시 1계약 청산시 1% 수익시 청산
2계약진입시 두번째 진입계약분 청산 1.3% 수익시 청산
3계약진입시 세번째 진입계약분 청산 1.7% 수익시 청산
4계약진입시 네번째 진입계약분 청산 2% 수익시 청산
5계약진입시 네번째 진입계약분 청산 2.5% 수익시 청산
안녕하세요
예스스탁입니다.
피라미딩을 다른진입신호만 허용으로 설정하고 적용하셔야 합니다.
input : P(20),per1(2),per2(5),per3(10),per4(15),per5(20);
var1 = rsi(p);
if MarketPosition == 0 and CrossDown(var1,30) Then
Buy("b",OnClose,Def,1);
if MarketPosition == 1 Then
{
if L > EntryPrice*(1-per1/100) Then
Buy("b1",AtLimit,EntryPrice*(1-per1/100),1);
if L > EntryPrice*(1-per2/100) Then
Buy("b2",AtLimit,EntryPrice*(1-per2/100),1);
if L > EntryPrice*(1-per3/100) Then
Buy("b3",AtLimit,EntryPrice*(1-per3/100),1);
if L > EntryPrice*(1-per4/100) Then
Buy("b4",AtLimit,EntryPrice*(1-per4/100),1);
if L > EntryPrice*(1-per5/100) Then
Buy("b5",AtLimit,EntryPrice*(1-per5/100),1);
}
SetStopProfittarget(1,PercentStop);
if sdate != sdate[1] Then
{
SetStopEndofday(0);
if DayOfWeek(sDate) == 5 Then
{
value1 = DateToJulian(sDate);
Value2 = JulianToDate(value1+7);
if Value2 > sDate+30 Then
SetStopEndofday(020000);
}
}
즐거운 하루되세요
------------------------최 초 질 문 사 항 ------------------
해외선물 나스닥 입니다.
60분봉 차트 적용
매수 조건
RSI(20) < 30 일때 1계약 매수
최초 매수단가에서 2%(변수) 하락시 1계약 추가 매수
매수단가에서 5%(변수) 하락시마다 1계약 추가 매수
매수단가에서 10%(변수) 하락시마다 1계약 추가 매수
매수단가에서 15%(변수) 하락시마다 1계약 추가 매수
매수단가에서 25%(변수) 하락시마다 1계약 추가매수
청산 조건
1. 각 계약별 진입가에서 1% 수익시 개별 청산
2. 마지막주(4주차) 금요일 새벽 2시에 전량 청산 (매월 말일 금요일 1회 전량 청산)
* 특이사항
분할 매수후 매수분에 일부가 청산될경우 다시 그조건에 매수될수 있게 수식 요청드림니다.
예를들어 1차 진입후 2차 진입 3차 진입후 3차 진입계약분이 1% 수익시 청산후
다시 3차 진입 조건 발생시 매수진입이 되는 조건으로 요청드림니다.
~ 매수 진입후 청산되지 않을 만큼 반등했다가 다시 하락해서 그 가격으로 오면
추가로 진입되지 않게.....
#1 나스닥 계단식 매매 일반 60분봉 2022-08
input : 시작일(20220806);
input : MFI기간(30),MFI값(12);
input : X(1000),Y(100);
input : per1(2),per2(2.5),per3(3),per4(3.5),per5(4);
input : 익절1(1);
var : MoneyFlow(0),MoneyFlow1(0);
MoneyFlow = MFI(MFI기간);
if Data1(sDate) >= 시작일 Then
{
if MarketPosition == 0 and MoneyFlow <= MFI값 and C <= Highest(H,X)-PriceScale*Y Then
{
Buy("b1",OnClose,Def,1);
ExitLong("bx1",AtLimit,c*(1+익절1/100),"b1");
}
}
if MarketPosition == 1 Then
{
if L > EntryPrice*(1-per1/100) Then
{
Buy("b2",AtLimit,EntryPrice*(1-per1/100),1);
ExitLong("bx2",AtLimit,min(NextBarOpen,EntryPrice*(1-per1/100))*(1+익절1*1.3/100),"b2");
}
if L > EntryPrice*(1-(per1*2)/100) Then
{
Buy("b3",AtLimit,EntryPrice*(1-per1*2/100),1);
ExitLong("bx3",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*2/100))*(1+익절1*1.6/100),"b3");
}
if L > EntryPrice*(1-(per1*3)/100) Then
{
Buy("b4",AtLimit,EntryPrice*(1-per1*3/100),1);
ExitLong("bx4",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*3/100))*(1+익절1*1.9/100),"b4");
}
if L > EntryPrice*(1-(per1*3+per2)/100) Then
{
Buy("b5",AtLimit,EntryPrice*(1-(per1*3+per2)/100),1);
ExitLong("bx5",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)/100))*(1+익절1*2.2/100),"b5");
}
if L > EntryPrice*(1-(per1*3+per2)*2/100) Then
{
Buy("b6",AtLimit,EntryPrice*(1-(per1*3+per2)*2/100),1);
ExitLong("bx6",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*2/100))*(1+익절1*2.5/100),"b6");
}
if L > EntryPrice*(1-(per1*3+per2)*3/100) Then
{
Buy("b7",AtLimit,EntryPrice*(1-(per1*3+per2)*3/100),1);
ExitLong("bx7",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*3/100))*(1+익절1*2.8/100),"b7");
}
if L > EntryPrice*(1-((per1*3+per2)*3+per3)/100) Then
{
Buy("b8",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)/100),1);
ExitLong("bx8",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)/100))*(1+익절1*3.1/100),"b8");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*2)/100) Then
{
Buy("b9",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100),1);
ExitLong("bx9",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100))*(1+익절1*3.4/100),"b9");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3)/100) Then
{
Buy("b10",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100),1);
ExitLong("bx10",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100))*(1+익절1*3.7/100),"b10");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100) Then
{
Buy("b11",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100),1);
ExitLong("bx11",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100))*(1+익절1*4/100),"b11");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*2)/100) Then
{
Buy("b12",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100),1);
ExitLong("bx12",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100))*(1+익절1*4.3/100),"b12");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3)/100) Then
{
Buy("b13",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100),1);
ExitLong("bx13",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100))*(1+익절1*4.6/100),"b13");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100) Then
{
Buy("b14",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100),1);
ExitLong("bx14",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100))*(1+익절1*4.9/100),"b14");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2)/100) Then
{
Buy("b15",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100),1);
ExitLong("bx15",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100))*(1+익절1*5.2/100),"b15");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3)/100) Then
{
Buy("b16",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100),1);
ExitLong("bx16",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100))*(1+익절1*5.5/100),"b16");
}
# SetStopProfittarget(청산퍼센트,PercentStop);
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b1" Then
value1 = LatestEntryPrice(0);
if LatestEntryName(0) == "b2" Then
value2 = LatestEntryPrice(0);
if LatestEntryName(0) == "b3" Then
value3 = LatestEntryPrice(0);
if LatestEntryName(0) == "b4" Then
value4 = LatestEntryPrice(0);
if LatestEntryName(0) == "b5" Then
value5 = LatestEntryPrice(0);
if LatestEntryName(0) == "b6" Then
value6 = LatestEntryPrice(0);
if LatestEntryName(0) == "b7" Then
value7 = LatestEntryPrice(0);
if LatestEntryName(0) == "b8" Then
value8 = LatestEntryPrice(0);
if LatestEntryName(0) == "b9" Then
value9 = LatestEntryPrice(0);
if LatestEntryName(0) == "b10" Then
value10 = LatestEntryPrice(0);
if LatestEntryName(0) == "b11" Then
value11 = LatestEntryPrice(0);
if LatestEntryName(0) == "b12" Then
value12 = LatestEntryPrice(0);
if LatestEntryName(0) == "b13" Then
value13 = LatestEntryPrice(0);
if LatestEntryName(0) == "b14" Then
value14 = LatestEntryPrice(0);
if LatestEntryName(0) == "b15" Then
value15 = LatestEntryPrice(0);
if LatestEntryName(0) == "b16" Then
value16 = LatestEntryPrice(0);
}
if value1 > 0 Then
ExitLong("bx1.",AtLimit,value1*(1+익절1/100),"b1");
if value2 > 0 Then
ExitLong("bx2.",AtLimit,value2*(1+익절1*1.3/100),"b2");
if value3 > 0 Then
ExitLong("bx3.",AtLimit,value3*(1+익절1*1.6/100),"b3");
if value4 > 0 Then
ExitLong("bx4.",AtLimit,value4*(1+익절1*1.9/100),"b4");
if value5 > 0 Then
ExitLong("bx5.",AtLimit,value5*(1+익절1*2.2/100),"b5");
if value6 > 0 Then
ExitLong("bx6.",AtLimit,value6*(1+익절1*2.5/100),"b6");
if value7 > 0 Then
ExitLong("bx7.",AtLimit,value7*(1+익절1*2.8/100),"b7");
if value8 > 0 Then
ExitLong("bx8.",AtLimit,value8*(1+익절1*3.1/100),"b8");
if value9 > 0 Then
ExitLong("bx9.",AtLimit,value9*(1+익절1*3.4/100),"b9");
if value10 > 0 Then
ExitLong("bx10.",AtLimit,value10*(1+익절1*3.7/100),"b10");
if value11 > 0 Then
ExitLong("bx11.",AtLimit,value11*(1+익절1*4/100),"b11");
if value12 > 0 Then
ExitLong("bx12.",AtLimit,value12*(1+익절1*4.3/100),"b12");
if value13 > 0 Then
ExitLong("bx13.",AtLimit,value13*(1+익절1*4.6/100),"b13");
if value14 > 0 Then
ExitLong("bx14.",AtLimit,value14*(1+익절1*4.9/100),"b14");
if value15 > 0 Then
ExitLong("bx15.",AtLimit,value15*(1+익절1*5.2/100),"b15");
if value16 > 0 Then
ExitLong("bx16.",AtLimit,value16*(1+익절1*5.5/100),"b16");
}
Else
{
value1 = 0;
value2 = 0;
value3 = 0;
value4 = 0;
value5 = 0;
value6 = 0;
value7 = 0;
value8 = 0;
value9 = 0;
value10 = 0;
value11 = 0;
value12 = 0;
value13 = 0;
value14 = 0;
value15 = 0;
value16 = 0;
}
#2 나스닥 60분봉 2022-08
input : 시작일(20220806);
input : MFI기간(30),MFI값(12);
input : X(3000),Y(700);
input : per1(3),per2(3.5),per3(4),per4(4.5),per5(5);
input : 익절1(0.5);
var : MoneyFlow(0),MoneyFlow1(0);
MoneyFlow = MFI(MFI기간);
if Data1(sDate) >= 시작일 Then
{
if MarketPosition == 0 and MoneyFlow <= MFI값 and C <= Highest(H,X)-PriceScale*Y Then
{
Buy("b1",OnClose,Def,1);
ExitLong("bx1",AtLimit,c*(1+익절1/100),"b1");
}
}
if MarketPosition == 1 Then
{
if L > EntryPrice*(1-per1/100) Then
{
Buy("b2",AtLimit,EntryPrice*(1-per1/100),1);
ExitLong("bx2",AtLimit,min(NextBarOpen,EntryPrice*(1-per1/100))*(1+익절1*1.3/100),"b2");
}
if L > EntryPrice*(1-(per1*2)/100) Then
{
Buy("b3",AtLimit,EntryPrice*(1-per1*2/100),1);
ExitLong("bx3",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*2/100))*(1+익절1*1.6/100),"b3");
}
if L > EntryPrice*(1-(per1*3)/100) Then
{
Buy("b4",AtLimit,EntryPrice*(1-per1*3/100),1);
ExitLong("bx4",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*3/100))*(1+익절1*1.9/100),"b4");
}
if L > EntryPrice*(1-(per1*3+per2)/100) Then
{
Buy("b5",AtLimit,EntryPrice*(1-(per1*3+per2)/100),1);
ExitLong("bx5",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)/100))*(1+익절1*2.2/100),"b5");
}
if L > EntryPrice*(1-(per1*3+per2)*2/100) Then
{
Buy("b6",AtLimit,EntryPrice*(1-(per1*3+per2)*2/100),1);
ExitLong("bx6",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*2/100))*(1+익절1*2.5/100),"b6");
}
if L > EntryPrice*(1-(per1*3+per2)*3/100) Then
{
Buy("b7",AtLimit,EntryPrice*(1-(per1*3+per2)*3/100),1);
ExitLong("bx7",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*3/100))*(1+익절1*2.8/100),"b7");
}
if L > EntryPrice*(1-((per1*3+per2)*3+per3)/100) Then
{
Buy("b8",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)/100),1);
ExitLong("bx8",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)/100))*(1+익절1*3.1/100),"b8");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*2)/100) Then
{
Buy("b9",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100),1);
ExitLong("bx9",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100))*(1+익절1*3.4/100),"b9");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3)/100) Then
{
Buy("b10",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100),1);
ExitLong("bx10",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100))*(1+익절1*3.7/100),"b10");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100) Then
{
Buy("b11",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100),1);
ExitLong("bx11",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100))*(1+익절1*4/100),"b11");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*2)/100) Then
{
Buy("b12",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100),1);
ExitLong("bx12",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100))*(1+익절1*4.3/100),"b12");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3)/100) Then
{
Buy("b13",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100),1);
ExitLong("bx13",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100))*(1+익절1*4.6/100),"b13");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100) Then
{
Buy("b14",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100),1);
ExitLong("bx14",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100))*(1+익절1*4.9/100),"b14");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2)/100) Then
{
Buy("b15",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100),1);
ExitLong("bx15",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100))*(1+익절1*5.2/100),"b15");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3)/100) Then
{
Buy("b16",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100),1);
ExitLong("bx16",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100))*(1+익절1*5.5/100),"b16");
}
# SetStopProfittarget(청산퍼센트,PercentStop);
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b1" Then
value1 = LatestEntryPrice(0);
if LatestEntryName(0) == "b2" Then
value2 = LatestEntryPrice(0);
if LatestEntryName(0) == "b3" Then
value3 = LatestEntryPrice(0);
if LatestEntryName(0) == "b4" Then
value4 = LatestEntryPrice(0);
if LatestEntryName(0) == "b5" Then
value5 = LatestEntryPrice(0);
if LatestEntryName(0) == "b6" Then
value6 = LatestEntryPrice(0);
if LatestEntryName(0) == "b7" Then
value7 = LatestEntryPrice(0);
if LatestEntryName(0) == "b8" Then
value8 = LatestEntryPrice(0);
if LatestEntryName(0) == "b9" Then
value9 = LatestEntryPrice(0);
if LatestEntryName(0) == "b10" Then
value10 = LatestEntryPrice(0);
if LatestEntryName(0) == "b11" Then
value11 = LatestEntryPrice(0);
if LatestEntryName(0) == "b12" Then
value12 = LatestEntryPrice(0);
if LatestEntryName(0) == "b13" Then
value13 = LatestEntryPrice(0);
if LatestEntryName(0) == "b14" Then
value14 = LatestEntryPrice(0);
if LatestEntryName(0) == "b15" Then
value15 = LatestEntryPrice(0);
if LatestEntryName(0) == "b16" Then
value16 = LatestEntryPrice(0);
}
if value1 > 0 Then
ExitLong("bx1.",AtLimit,value1*(1+익절1/100),"b1");
if value2 > 0 Then
ExitLong("bx2.",AtLimit,value2*(1+익절1*1.3/100),"b2");
if value3 > 0 Then
ExitLong("bx3.",AtLimit,value3*(1+익절1*1.6/100),"b3");
if value4 > 0 Then
ExitLong("bx4.",AtLimit,value4*(1+익절1*1.9/100),"b4");
if value5 > 0 Then
ExitLong("bx5.",AtLimit,value5*(1+익절1*2.2/100),"b5");
if value6 > 0 Then
ExitLong("bx6.",AtLimit,value6*(1+익절1*2.5/100),"b6");
if value7 > 0 Then
ExitLong("bx7.",AtLimit,value7*(1+익절1*2.8/100),"b7");
if value8 > 0 Then
ExitLong("bx8.",AtLimit,value8*(1+익절1*3.1/100),"b8");
if value9 > 0 Then
ExitLong("bx9.",AtLimit,value9*(1+익절1*3.4/100),"b9");
if value10 > 0 Then
ExitLong("bx10.",AtLimit,value10*(1+익절1*3.7/100),"b10");
if value11 > 0 Then
ExitLong("bx11.",AtLimit,value11*(1+익절1*4/100),"b11");
if value12 > 0 Then
ExitLong("bx12.",AtLimit,value12*(1+익절1*4.3/100),"b12");
if value13 > 0 Then
ExitLong("bx13.",AtLimit,value13*(1+익절1*4.6/100),"b13");
if value14 > 0 Then
ExitLong("bx14.",AtLimit,value14*(1+익절1*4.9/100),"b14");
if value15 > 0 Then
ExitLong("bx15.",AtLimit,value15*(1+익절1*5.2/100),"b15");
if value16 > 0 Then
ExitLong("bx16.",AtLimit,value16*(1+익절1*5.5/100),"b16");
}
Else
{
value1 = 0;
value2 = 0;
value3 = 0;
value4 = 0;
value5 = 0;
value6 = 0;
value7 = 0;
value8 = 0;
value9 = 0;
value10 = 0;
value11 = 0;
value12 = 0;
value13 = 0;
value14 = 0;
value15 = 0;
value16 = 0;
}
#3 SP 60분봉 2022-08
input : 시작일(20220806);
input : MFI기간(30),MFI값(18);
input : X(250),Y(100);
input : per1(2),per2(3),per3(4),per4(5),per5(6);
input : 익절1(1.5);
var : MoneyFlow(0),MoneyFlow1(0);
MoneyFlow = MFI(MFI기간);
if Data1(sDate) >= 시작일 Then
{
if MarketPosition == 0 and MoneyFlow <= MFI값 and C <= Highest(H,X)-PriceScale*Y Then
{
Buy("b1",OnClose,Def,1);
ExitLong("bx1",AtLimit,c*(1+익절1/100),"b1");
}
}
if MarketPosition == 1 Then
{
if L > EntryPrice*(1-per1/100) Then
{
Buy("b2",AtLimit,EntryPrice*(1-per1/100),1);
ExitLong("bx2",AtLimit,min(NextBarOpen,EntryPrice*(1-per1/100))*(1+익절1*1.3/100),"b2");
}
if L > EntryPrice*(1-(per1*2)/100) Then
{
Buy("b3",AtLimit,EntryPrice*(1-per1*2/100),1);
ExitLong("bx3",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*2/100))*(1+익절1*1.6/100),"b3");
}
if L > EntryPrice*(1-(per1*3)/100) Then
{
Buy("b4",AtLimit,EntryPrice*(1-per1*3/100),1);
ExitLong("bx4",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*3/100))*(1+익절1*1.9/100),"b4");
}
if L > EntryPrice*(1-(per1*3+per2)/100) Then
{
Buy("b5",AtLimit,EntryPrice*(1-(per1*3+per2)/100),1);
ExitLong("bx5",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)/100))*(1+익절1*2.2/100),"b5");
}
if L > EntryPrice*(1-(per1*3+per2)*2/100) Then
{
Buy("b6",AtLimit,EntryPrice*(1-(per1*3+per2)*2/100),1);
ExitLong("bx6",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*2/100))*(1+익절1*2.5/100),"b6");
}
if L > EntryPrice*(1-(per1*3+per2)*3/100) Then
{
Buy("b7",AtLimit,EntryPrice*(1-(per1*3+per2)*3/100),1);
ExitLong("bx7",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*3/100))*(1+익절1*2.8/100),"b7");
}
if L > EntryPrice*(1-((per1*3+per2)*3+per3)/100) Then
{
Buy("b8",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)/100),1);
ExitLong("bx8",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)/100))*(1+익절1*3.1/100),"b8");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*2)/100) Then
{
Buy("b9",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100),1);
ExitLong("bx9",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100))*(1+익절1*3.4/100),"b9");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3)/100) Then
{
Buy("b10",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100),1);
ExitLong("bx10",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100))*(1+익절1*3.7/100),"b10");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100) Then
{
Buy("b11",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100),1);
ExitLong("bx11",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100))*(1+익절1*4/100),"b11");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*2)/100) Then
{
Buy("b12",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100),1);
ExitLong("bx12",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100))*(1+익절1*4.3/100),"b12");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3)/100) Then
{
Buy("b13",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100),1);
ExitLong("bx13",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100))*(1+익절1*4.6/100),"b13");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100) Then
{
Buy("b14",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100),1);
ExitLong("bx14",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100))*(1+익절1*4.9/100),"b14");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2)/100) Then
{
Buy("b15",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100),1);
ExitLong("bx15",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100))*(1+익절1*5.2/100),"b15");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3)/100) Then
{
Buy("b16",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100),1);
ExitLong("bx16",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100))*(1+익절1*5.5/100),"b16");
}
# SetStopProfittarget(청산퍼센트,PercentStop);
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b1" Then
value1 = LatestEntryPrice(0);
if LatestEntryName(0) == "b2" Then
value2 = LatestEntryPrice(0);
if LatestEntryName(0) == "b3" Then
value3 = LatestEntryPrice(0);
if LatestEntryName(0) == "b4" Then
value4 = LatestEntryPrice(0);
if LatestEntryName(0) == "b5" Then
value5 = LatestEntryPrice(0);
if LatestEntryName(0) == "b6" Then
value6 = LatestEntryPrice(0);
if LatestEntryName(0) == "b7" Then
value7 = LatestEntryPrice(0);
if LatestEntryName(0) == "b8" Then
value8 = LatestEntryPrice(0);
if LatestEntryName(0) == "b9" Then
value9 = LatestEntryPrice(0);
if LatestEntryName(0) == "b10" Then
value10 = LatestEntryPrice(0);
if LatestEntryName(0) == "b11" Then
value11 = LatestEntryPrice(0);
if LatestEntryName(0) == "b12" Then
value12 = LatestEntryPrice(0);
if LatestEntryName(0) == "b13" Then
value13 = LatestEntryPrice(0);
if LatestEntryName(0) == "b14" Then
value14 = LatestEntryPrice(0);
if LatestEntryName(0) == "b15" Then
value15 = LatestEntryPrice(0);
if LatestEntryName(0) == "b16" Then
value16 = LatestEntryPrice(0);
}
if value1 > 0 Then
ExitLong("bx1.",AtLimit,value1*(1+익절1/100),"b1");
if value2 > 0 Then
ExitLong("bx2.",AtLimit,value2*(1+익절1*1.3/100),"b2");
if value3 > 0 Then
ExitLong("bx3.",AtLimit,value3*(1+익절1*1.6/100),"b3");
if value4 > 0 Then
ExitLong("bx4.",AtLimit,value4*(1+익절1*1.9/100),"b4");
if value5 > 0 Then
ExitLong("bx5.",AtLimit,value5*(1+익절1*2.2/100),"b5");
if value6 > 0 Then
ExitLong("bx6.",AtLimit,value6*(1+익절1*2.5/100),"b6");
if value7 > 0 Then
ExitLong("bx7.",AtLimit,value7*(1+익절1*2.8/100),"b7");
if value8 > 0 Then
ExitLong("bx8.",AtLimit,value8*(1+익절1*3.1/100),"b8");
if value9 > 0 Then
ExitLong("bx9.",AtLimit,value9*(1+익절1*3.4/100),"b9");
if value10 > 0 Then
ExitLong("bx10.",AtLimit,value10*(1+익절1*3.7/100),"b10");
if value11 > 0 Then
ExitLong("bx11.",AtLimit,value11*(1+익절1*4/100),"b11");
if value12 > 0 Then
ExitLong("bx12.",AtLimit,value12*(1+익절1*4.3/100),"b12");
if value13 > 0 Then
ExitLong("bx13.",AtLimit,value13*(1+익절1*4.6/100),"b13");
if value14 > 0 Then
ExitLong("bx14.",AtLimit,value14*(1+익절1*4.9/100),"b14");
if value15 > 0 Then
ExitLong("bx15.",AtLimit,value15*(1+익절1*5.2/100),"b15");
if value16 > 0 Then
ExitLong("bx16.",AtLimit,value16*(1+익절1*5.5/100),"b16");
}
Else
{
value1 = 0;
value2 = 0;
value3 = 0;
value4 = 0;
value5 = 0;
value6 = 0;
value7 = 0;
value8 = 0;
value9 = 0;
value10 = 0;
value11 = 0;
value12 = 0;
value13 = 0;
value14 = 0;
value15 = 0;
value16 = 0;
}
#4 SP 60분봉 2022-07
input : 시작일(20220806);
input : MFI기간(30),MFI값(24);
input : X(100),Y(1100);
input : per1(2),per2(3),per3(4),per4(5),per5(6);
input : 익절1(1.5);
var : MoneyFlow(0),MoneyFlow1(0);
MoneyFlow = MFI(MFI기간);
if Data1(sDate) >= 시작일 Then
{
if MarketPosition == 0 and MoneyFlow <= MFI값 and C <= Highest(H,X)-PriceScale*Y Then
{
Buy("b1",OnClose,Def,1);
ExitLong("bx1",AtLimit,c*(1+익절1/100),"b1");
}
}
if MarketPosition == 1 Then
{
if L > EntryPrice*(1-per1/100) Then
{
Buy("b2",AtLimit,EntryPrice*(1-per1/100),1);
ExitLong("bx2",AtLimit,min(NextBarOpen,EntryPrice*(1-per1/100))*(1+익절1*1.3/100),"b2");
}
if L > EntryPrice*(1-(per1*2)/100) Then
{
Buy("b3",AtLimit,EntryPrice*(1-per1*2/100),1);
ExitLong("bx3",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*2/100))*(1+익절1*1.6/100),"b3");
}
if L > EntryPrice*(1-(per1*3)/100) Then
{
Buy("b4",AtLimit,EntryPrice*(1-per1*3/100),1);
ExitLong("bx4",AtLimit,min(NextBarOpen,EntryPrice*(1-per1*3/100))*(1+익절1*1.9/100),"b4");
}
if L > EntryPrice*(1-(per1*3+per2)/100) Then
{
Buy("b5",AtLimit,EntryPrice*(1-(per1*3+per2)/100),1);
ExitLong("bx5",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)/100))*(1+익절1*2.2/100),"b5");
}
if L > EntryPrice*(1-(per1*3+per2)*2/100) Then
{
Buy("b6",AtLimit,EntryPrice*(1-(per1*3+per2)*2/100),1);
ExitLong("bx6",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*2/100))*(1+익절1*2.5/100),"b6");
}
if L > EntryPrice*(1-(per1*3+per2)*3/100) Then
{
Buy("b7",AtLimit,EntryPrice*(1-(per1*3+per2)*3/100),1);
ExitLong("bx7",AtLimit,min(NextBarOpen,EntryPrice*(1-(per1*3+per2)*3/100))*(1+익절1*2.8/100),"b7");
}
if L > EntryPrice*(1-((per1*3+per2)*3+per3)/100) Then
{
Buy("b8",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)/100),1);
ExitLong("bx8",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)/100))*(1+익절1*3.1/100),"b8");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*2)/100) Then
{
Buy("b9",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100),1);
ExitLong("bx9",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*2/100))*(1+익절1*3.4/100),"b9");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3)/100) Then
{
Buy("b10",AtLimit,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100),1);
ExitLong("bx10",AtLimit,min(NextBarOpen,EntryPrice*(1-((per1*3+per2)*3+per3)*3/100))*(1+익절1*3.7/100),"b10");
}
if L > EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100) Then
{
Buy("b11",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100),1);
ExitLong("bx11",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)/100))*(1+익절1*4/100),"b11");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*2)/100) Then
{
Buy("b12",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100),1);
ExitLong("bx12",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*2/100))*(1+익절1*4.3/100),"b12");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3)/100) Then
{
Buy("b13",AtLimit,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100),1);
ExitLong("bx13",AtLimit,min(NextBarOpen,EntryPrice*(1-(((per1*3+per2)*3+per3)*3+per4)*3/100))*(1+익절1*4.6/100),"b13");
}
if L > EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100) Then
{
Buy("b14",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100),1);
ExitLong("bx14",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)/100))*(1+익절1*4.9/100),"b14");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2)/100) Then
{
Buy("b15",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100),1);
ExitLong("bx15",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*2/100))*(1+익절1*5.2/100),"b15");
}
if L > EntryPrice*(1-(((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3)/100) Then
{
Buy("b16",AtLimit,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100),1);
ExitLong("bx16",AtLimit,min(NextBarOpen,EntryPrice*(1-((((per1*3+per2)*3+per3)*3+per4)*3+per5)*3/100))*(1+익절1*5.5/100),"b16");
}
# SetStopProfittarget(청산퍼센트,PercentStop);
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b1" Then
value1 = LatestEntryPrice(0);
if LatestEntryName(0) == "b2" Then
value2 = LatestEntryPrice(0);
if LatestEntryName(0) == "b3" Then
value3 = LatestEntryPrice(0);
if LatestEntryName(0) == "b4" Then
value4 = LatestEntryPrice(0);
if LatestEntryName(0) == "b5" Then
value5 = LatestEntryPrice(0);
if LatestEntryName(0) == "b6" Then
value6 = LatestEntryPrice(0);
if LatestEntryName(0) == "b7" Then
value7 = LatestEntryPrice(0);
if LatestEntryName(0) == "b8" Then
value8 = LatestEntryPrice(0);
if LatestEntryName(0) == "b9" Then
value9 = LatestEntryPrice(0);
if LatestEntryName(0) == "b10" Then
value10 = LatestEntryPrice(0);
if LatestEntryName(0) == "b11" Then
value11 = LatestEntryPrice(0);
if LatestEntryName(0) == "b12" Then
value12 = LatestEntryPrice(0);
if LatestEntryName(0) == "b13" Then
value13 = LatestEntryPrice(0);
if LatestEntryName(0) == "b14" Then
value14 = LatestEntryPrice(0);
if LatestEntryName(0) == "b15" Then
value15 = LatestEntryPrice(0);
if LatestEntryName(0) == "b16" Then
value16 = LatestEntryPrice(0);
}
if value1 > 0 Then
ExitLong("bx1.",AtLimit,value1*(1+익절1/100),"b1");
if value2 > 0 Then
ExitLong("bx2.",AtLimit,value2*(1+익절1*1.3/100),"b2");
if value3 > 0 Then
ExitLong("bx3.",AtLimit,value3*(1+익절1*1.6/100),"b3");
if value4 > 0 Then
ExitLong("bx4.",AtLimit,value4*(1+익절1*1.9/100),"b4");
if value5 > 0 Then
ExitLong("bx5.",AtLimit,value5*(1+익절1*2.2/100),"b5");
if value6 > 0 Then
ExitLong("bx6.",AtLimit,value6*(1+익절1*2.5/100),"b6");
if value7 > 0 Then
ExitLong("bx7.",AtLimit,value7*(1+익절1*2.8/100),"b7");
if value8 > 0 Then
ExitLong("bx8.",AtLimit,value8*(1+익절1*3.1/100),"b8");
if value9 > 0 Then
ExitLong("bx9.",AtLimit,value9*(1+익절1*3.4/100),"b9");
if value10 > 0 Then
ExitLong("bx10.",AtLimit,value10*(1+익절1*3.7/100),"b10");
if value11 > 0 Then
ExitLong("bx11.",AtLimit,value11*(1+익절1*4/100),"b11");
if value12 > 0 Then
ExitLong("bx12.",AtLimit,value12*(1+익절1*4.3/100),"b12");
if value13 > 0 Then
ExitLong("bx13.",AtLimit,value13*(1+익절1*4.6/100),"b13");
if value14 > 0 Then
ExitLong("bx14.",AtLimit,value14*(1+익절1*4.9/100),"b14");
if value15 > 0 Then
ExitLong("bx15.",AtLimit,value15*(1+익절1*5.2/100),"b15");
if value16 > 0 Then
ExitLong("bx16.",AtLimit,value16*(1+익절1*5.5/100),"b16");
}
Else
{
value1 = 0;
value2 = 0;
value3 = 0;
value4 = 0;
value5 = 0;
value6 = 0;
value7 = 0;
value8 = 0;
value9 = 0;
value10 = 0;
value11 = 0;
value12 = 0;
value13 = 0;
value14 = 0;
value15 = 0;
value16 = 0;
}