코딩하는 방법? - 페이지 278

 

20일 동안 백테스트했는데 돈을 잃을 것 같습니다.

나는 1년 동안 백테스트를 할 것이다, 보자

하지만 우선 extern string begin 및 extern string end에서 값을 변경하여 시간을 수정할 수 있는지 확인해야 합니다.

 

또한 내가 알아차린 것은 EA가 하루에 여러 번 거래를 한다는 것입니다. 따라서 우리는 EA에게 이 최소-최대 -/+ 5핍 범위에서 처음으로 한 번만 거래하라고 알려야 합니다. 또한 우리는 정지 손실 대신 후행 정지를 통합해야 합니다.

또한 숫자에 대한 질문입니다. 300은 300핍과 같지 않습니까? 우리는 30핍이 되기 위해 스톱이 필요하고 50핍의 이익을 취해야 합니다. 또한 magis = 123은 무엇을 의미합니까?

이 질문에 대한 동일한 질문 if(Bid<=(low-0.005)) 0.005 여기에 50핍이 아닌가요?

extern double stopLoss = 300.0이 아닙니다 .

외부 이중 takeProfit = 500.0 ;

외부 문자열 시작="02:00";

외부 문자열 End="10:00";

외부 이중 거리 = 80;

부울 isECN = true;

부울 조건 = 거짓;

부울 cond2 = 거짓;

이중 낮은;

더블 하이;

외부 이중 로트 = 0.1;

정수 마법 = 123;

int 미끄러짐 = 1;

문자열 주석 = "";

인트 티켓;

 
Avasys:
또한 내가 알아차린 것은 EA가 하루에 여러 번 거래를 한다는 것입니다. 따라서 우리는 EA에게 이 최소-최대 -/+ 5핍 범위에서 처음으로 한 번만 거래하라고 알려야 합니다. 또한 우리는 정지 손실 대신 후행 정지를 통합해야 합니다.

또한 숫자에 대한 질문입니다. 300은 300핍과 같지 않습니까? 우리는 30핍이 되기 위해 스톱이 필요하고 50핍의 이익을 취해야 합니다. 또한 magis = 123은 무엇을 의미합니까?

이 질문에 대한 동일한 질문 if(Bid<=(low-0.005)) 0.005 여기에 50핍이 아닌가요?

extern double stopLoss = 300.0이 아닙니다 .

외부 이중 takeProfit = 500.0 ;

외부 문자열 시작="02:00";

외부 문자열 End="10:00";

외부 이중 거리 = 80;

부울 isECN = true;

부울 조건 = 거짓;

부울 cond2 = 거짓;

이중 낮은;

더블 하이;

외부 이중 로트 = 0.1;

정수 마법 = 123;

int 미끄러짐 = 1;

문자열 주석 = "";

인트 티켓;

[lang=pl]맞습니다. 0.005 대신 0.0005가 있어야 합니다. 300과 500은 내가 5자리 중개인을 사용하기 때문에 평균 300포인트이므로 30핍입니다.

필요한 후행 정지를 원하십니까? 매직넘버에 대해 보시다시피 123이 마음에 들지 않으면 마법을 바꿉니다. [/언어]

파일:
simple_ea.mq4  4 kb
 
g.pociejewski:
[lang=pl]맞습니다. 0.005 대신 0.0005가 있어야 합니다. 300과 500은 내가 5자리 브로커를 사용하기 때문에 평균 300포인트이므로 30핍입니다. 당신이 필요로하는 후행 중지의 종류를 알려주십시오? 매직넘버에 대해 보시다시피 123이 마음에 들지 않으면 마법을 바꾸겠습니다. [/언어]

감사해요

그래서 이 EA는 이제 하루에 한 번만 거래를 하므로 레벨 이탈이 하루에 몇 번 발생할 수 있지만 한 번만 거래될 수 있습니다.

또한 EURJPY는 고가 통화이므로 여전히 동일한 번호를 사용하거나 00을 이동합니까?

또한 나 자신이 숫자를 변경하거나 수정할 수 있습니다. 손실을 중지 하고 이익 을 얻습니다.

후행 정지에 관하여. 이익이 증가하면 이익을 잠그기 위해 스톱 후행 35핍을 따라야 합니다.

여기서 변경하면 어떻게 될까요?

외부 이중 정지 손실 = 300.0 ; (저는 4자리 브로커를 사용하는데 이걸 수정해야 하나요?)

외부 이중 takeProfit = 500.0 ;

외부 문자열 시작=" 0:00 "; (시간 범위를 전날 22:00, 현재 날짜 06:00으로 설정하려면 어떻게 됩니까?)

외부 문자열 종료 = 08:15 ";

외부 이중 거리 = 60;

부울 isECN = true;

부울 조건 = 거짓;

부울 cond2 = 거짓;

이중 낮은;

더블 하이;

외부 이중 로트 = 0.1;

정수 마법 = 123;

int 미끄러짐 = 1;

문자열 주석 = "";

인트 티켓;

또한 이것을 변경하면 어떻게 될까요?

if(입찰가<=(낮음- 0.005 ))

코드의 기능에 영향을 미치지 않을 수 있습니다. 맞나요?

백테스트를 시도할 때의 유일한 문제는 EA가 하루에 몇 번의 거래를 실행한 것처럼 코드에서 관리하여 하루에 한 쌍에 대해 한 번의 거래만 실행할 수 있다는 것입니다.

 

안녕 다시

확인 JPY 쌍보다 값이 낮은 GBPUSD와 같은 쌍의 경우 거리가 80이 아니어야 하므로 JPY 쌍의 경우 거리가 낮은 값 쌍의 경우보다 10X여야 한다는 것을 알았습니다.

그리고 다시 한 번 백테스트를 해보니 EA가 같은 페어에서 하루에 여러 번 거래한 것처럼 결과가 나온 것을 이해할 수 없었습니다.

그렇다면 EA가 그 자리에 들어갔다면 이 자리는 그날 한 번만 있어야 하는 것이 가능합니까?

감사해요

또한 다음의 의미는 무엇입니까?

int 미끄러짐 = 1;

문자열 주석 = "";

인트 티켓;

또한 EA에 스크립트를 추가할 수 있으며 거래가 실행되면 나에게 SMS 또는 이메일로 전송됩니까?

감사해요

 

하나의 주문이 기록에 있는 경우 오늘 거래 중지

안녕,

누군가가 나를 안내할 수 있습니다.

- 주문이 실행되고 손익이 마감되고 내역에 나열됩니다.

- 이제 하루 종일 이 쌍(기호)에 대한 거래를 비활성화/중지하고 싶습니다.

- 다음날 새로운 주문이 실행될 수 있습니다.

"Max Trades Per Bar" 기능 과 비슷하지만 기록을 기반으로 합니다.

확장된 코딩 기술이 부족하기 때문에 여러 테스트를 거친 코드 조각이 실패합니다.

예시:

1 2008.01.07 02:36 매도 1 0.10 1.4730 0.0000 0.0000 0.00 10000.00

2 2008.01.07 03:14 종가 1 0.10 1.4714 0.0000 0.0000 16.00 10016.00

3 2008.01.07 03:14 매도 2 0.10 1.4712 0.0000 0.0000 0.00 10016.00

4 2008.01.07 07:54 종가 2 0.10 1.4672 0.0000 0.0000 40.00 10056.00

5 2008.01.07 07:54 매도 3 0.10 1.4671 0.0000 0.0000 0.00 10056.00

6 2008.01.09 15:56 종가 3 0.10 1.4663 0.0000 0.0000 7.04 10063.04

7 2008.01.10 14:24 매수 4 0.10 1.4708 0.0000 0.0000 0.00 10063.04

8 2008.01.10 14:47 종가 4 0.10 1.4748 0.0000 0.0000 40.50 10103.54

어떤 도움이라도 대단히 감사합니다

문안 인사

남자 이름

 
ixbone:
안녕,

누군가가 나를 안내할 수 있습니다.

- 주문이 실행되고 손익이 마감되고 내역에 나열됩니다.

- 이제 하루 종일 이 쌍(기호)에 대한 거래를 비활성화/중지하고 싶습니다.

- 다음날 새로운 주문이 실행될 수 있습니다.

"Max Trades Per Bar" 기능과 비슷하지만 역사를 기반으로 합니다.

확장된 코딩 기술이 부족하기 때문에 여러 테스트를 거친 코드 조각이 실패합니다.

예시:

1 2008.01.07 02:36 매도 1 0.10 1.4730 0.0000 0.0000 0.00 10000.00

2 2008.01.07 03:14 종가 1 0.10 1.4714 0.0000 0.0000 16.00 10016.00

3 2008.01.07 03:14 매도 2 0.10 1.4712 0.0000 0.0000 0.00 10016.00

4 2008.01.07 07:54 종가 2 0.10 1.4672 0.0000 0.0000 40.00 10056.00

5 2008.01.07 07:54 매도 3 0.10 1.4671 0.0000 0.0000 0.00 10056.00

6 2008.01.09 15:56 종가 3 0.10 1.4663 0.0000 0.0000 7.04 10063.04

7 2008.01.10 14:24 매수 4 0.10 1.4708 0.0000 0.0000 0.00 10063.04

8 2008.01.10 14:47 종가 4 0.10 1.4748 0.0000 0.0000 40.50 10103.54

어떤 도움이라도 대단히 감사합니다

문안 인사

남자 이름

[lang=pl]안녕하세요 마이클,

한 가지 질문이 있습니다. 현재 날짜의 포지션이 마감된 경우 신규 포지션 개설을 중단해야 합니까?

정지 시 닫혀 있습니까? OP_BUY의 경우 만드는 방법에 대한 예가 있습니다(다른 사람들도 비슷합니다).

정수 시간;

부울 조건 = true;

이중 손절매 = 50;

이중 takeProfit = 70;

이중 로트 = 0.1;

정수 주문 = 0;

정수 마법 = 123;

//+----------------------------------------------- -------------------+

//| 전문가 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 전문가 초기화 해제 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 전문가 시작 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

인쇄(countOrders(매직, OP_BUY));

if(주문 !=countOrders(magic,OP_BUY)) cond = false;

if(시간 != DayOfWeek()) 조건 = 참;

if(조건) {

OrderSend(Symbol(),OP_BUY,lots,Ask, 1,sltpValue(Ask - stopLoss*Point, stopLoss),sltpValue(Bid+ takeProfit*Point,takeProfit),"",magic);

}

주문 = countOrders(magic,OP_BUY);

시간 = DayOfWeek();

//----

리턴(0);

}

int countOrders(int oMagic,int oType) {

정수 수 = 0;

for(int i=0;i<OrdersTotal();i++) {

if(주문선택(i,SELECT_BY_POS)) {

if(OrderMagicNumber()==oMagic) {

if(OrderSymbol()==Symbol()) {

if(OrderType()==oType || oType<0) {

카운트++;

}

}

}

}

}

반환(카운트);

}

더블 sltpValue(더블 w1, int w2){

if(w2 == 0)

리턴(0);

반환 (NormalizeDouble(w1, 숫자));

}

//+----------------------------------------------- -------------------+

나는 그것이 명확하기를 바랍니다. 질문이 있는 경우 저에게 연락하십시오.

건배,

그르제식[/lang]

 

안녕, Grzesiek

예, 현재 날짜에 새 포지션 개설을 중단하십시오. 매수, 매도, 보류 또는 취소 여부는 중요하지 않습니다.

- 주문이 이익, 손실, 취소 또는 보류 중으로 마감되어 기록에 삭제 및 기록된 경우 - 현재 날짜에 이 기호()에 대해 어떤 종류의 새로운 거래도 허용되지 않습니다.

- 새로운 날이 있으면 모든 종류의 새로운 주문을 실행할 수 있습니다.

내가 한 일이 작동하지 않습니다.

외부 부울 Only1OrderPerDay=true;

if(Only1OrderPerDay==true){

CountHistoryOrders();

}

무효 CountHistoryOrders(){

for(int d=0;d<OrdersHistoryTotal();d++){

주문선택(d,SELECT_BY_POS,MODE_HISTORY);{

if(OrderSymbol()==Symbol() && (OrderMagicNumber()==매직 || 매직==0))d++;

Print("HistoryOrders "+DoubleToStr(d,0));

{

if(d>0 ....시간?...){

반품;

}}}}}

도움에 감사드립니다

남자 이름

g.pociejewski:
[lang=pl]안녕하세요 마이클,

한 가지 질문이 있습니다. 현재 날짜의 포지션이 마감된 경우 신규 포지션 개설을 중단해야 합니까?

정지시 닫혀 있습니까? OP_BUY의 경우 만드는 방법에 대한 예가 있습니다(다른 사람들도 비슷합니다).

정수 시간;

부울 조건 = true;

이중 손절매 = 50;

이중 takeProfit = 70;

이중 로트 = 0.1;

정수 주문 = 0;

정수 마법 = 123;

//+----------------------------------------------- -------------------+

//| 전문가 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 전문가 초기화 해제 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//----

//----

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 전문가 시작 기능 |

//+----------------------------------------------- -------------------+

정수 시작()

{

인쇄(countOrders(매직, OP_BUY));

if(주문 !=countOrders(magic,OP_BUY)) cond = false;

if(시간 != DayOfWeek()) 조건 = 참;

if(조건) {

OrderSend(Symbol(),OP_BUY,lots,Ask, 1,sltpValue(Ask - stopLoss*Point, stopLoss),sltpValue(Bid+ takeProfit*Point,takeProfit),"",magic);

}

주문 = countOrders(magic,OP_BUY);

시간 = DayOfWeek();

//----

리턴(0);

}

int countOrders(int oMagic,int oType) {

정수 수 = 0;

for(int i=0;i<OrdersTotal();i++) {

if(주문선택(i,SELECT_BY_POS)) {

if(OrderMagicNumber()==oMagic) {

if(OrderSymbol()==Symbol()) {

if(OrderType()==oType || oType<0) {

카운트++;

}

}

}

}

}

리턴(카운트);

}

더블 sltpValue(더블 w1, int w2){

if(w2 == 0)

리턴(0);

반환 (NormalizeDouble(w1, 숫자));

}

//+----------------------------------------------- -------------------+

나는 그것이 명확하기를 바랍니다. 질문이 있는 경우 저에게 연락하십시오.

건배,

그르제식[/lang]
 

드래그 앤 드롭 손절매

여보세요

드래그 앤 드롭 스톱 로스 스크립트가 있고 그것을 사용하는 것을 좋아합니다. 그러나 내 중개인은 1개의 주문만 동일한 Scart에서 2개의 주문에 대해 작동하지 않습니다. 같은 장소에서 2개의 주문에 대해 손절매를 설정하고 싶습니다.

문제가 무엇입니까? 다른 브로커에서는 잘 작동합니다.

도와주세요

정수 시작()

{

//----

정수 숫자 = MarketInfo(Symbol(),MODE_DIGITS);

이중 값 = NormalizeDouble(WindowPriceOnDropped(), 숫자);

for(int i=OrdersTotal()-1;i>=0;i--)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

계속하다;

if(OrderSymbol()!=Symbol())

계속하다;

새로 고침 비율();

if(주문유형()==OP_BUY)

if(값<입찰가)

OrderModify(OrderTicket(),OrderOpenPrice(),값, OrderTakeProfit(),OrderExpiration(),흰색);

if(주문 유형()==OP_SELL)

if(값>요청)

OrderModify(OrderTicket(),OrderOpenPrice(),값, OrderTakeProfit(),OrderExpiration(),흰색);

if((OrderType()==OP_BUYSTOP) || (OrderType()==OP_BUYLIMIT))

if(값<주문열기가격())

OrderModify(OrderTicket(),OrderOpenPrice(),값, OrderTakeProfit(),OrderExpiration(),흰색);

if((주문유형()==OP_SELLSTOP) || (주문유형()==OP_SELLLIMIT))

if(값>OrderOpenPrice())

OrderModify(OrderTicket(),OrderOpenPrice(),값, OrderTakeProfit(),OrderExpiration(),흰색);

}

리턴(0);

}

//+----------------------------------------------- -------------------+

 

EA에서 2개의 서로 다른 표시기의 XY 좌표 위치를 어떻게 찾을 수 있습니까?

같은 하위 창에서 Macd 와 다른 표시기를 말합니까?