MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1338

 

질문을 더 정확하게 드리겠습니다.

얼마나 많은 거래를 열어야 하는지 EA에 알려주는 코드 블록이 있습니다. 그는 이렇게 생겼어

정수 OPEN=1;

if(주문 합계())

열림=0; //더 이상 주문을 열 수 없습니다.

if(열기==1)

{

//여기서 열림

}

문제는 모든 상품에 필요한 거래 수 (이 예에서는 1)를 여는 것입니다. 그리고 나는 그에게 설명해야 한다

열어야 하는 것은 CURRENT 상품의 거래 수입니다. _Symbol 또는 Symbol()과 같은 것. 어떻게 할 수 있습니까? 여기에서 해결 방법은 간단하다고 생각합니다.

 
sibiriyak73 :

질문을 더 정확하게 드리겠습니다.

얼마나 많은 거래를 열어야 하는지 EA에 알려주는 코드 블록이 있습니다. 그는 이렇게 생겼어

정수 OPEN=1;

if(주문 합계())

열림=0; //더 이상 주문을 열 수 없습니다.

if(열기==1)

{

//여기서 열림

}

문제는 모든 상품에 필요한 거래 수 (이 예에서는 1)를 여는 것입니다. 그리고 나는 그에게 설명해야 한다

열어야 하는 것은 CURRENT 상품의 거래 수입니다. _Symbol 또는 Symbol()과 같은 것. 어떻게 할 수 있습니까? 여기에서 해결 방법은 간단하다고 생각합니다.

 if (!isTradeToDay( Symbol ()))
 {
   //Здесь открываем
 }
 
Iurii Tokman :
빌어먹을 거래의 구름을 찢고 팔고
 
sibiriyak73 :
빌어먹을 거래의 구름을 찢고 팔고

두 가지 옵션이 있습니다.
1. 모든 코드 표시
2. 텔레파시 클럽으로

 
Iurii Tokman :

두 가지 옵션이 있습니다.
1. 모든 코드 표시
2. 텔레파시 클럽으로 :)

:)

열고 사고 파는 방법 "!"을 알아 냈습니다. 그러나 트랜잭션 수는 각 틱의 열기를 규제하지 않습니다.

정수 시작()

{

더블 a=iOpen(NULL,PERIOD_D1,0);

더블 d=_ORDER*0.00001;

이중 c=d+1;

이중 s=c*a;

이중 제한 = NormalizeDouble(s,_Digits);

// Print("limit level= ",limit);

이중 e=_STOP*0.00001;

이중 n=e+1;

이중 m=n*a;

이중 SL= NormalizeDouble(m,_Digits);

//Print("정지 레벨= ",SL);

이중 p=_TP*0.00001;

이중 f=p+1;

이중 z=f*a;

이중 TP= NormalizeDouble(z,_Digits);

더블 w=iOpen(NULL,PERIOD_D1,0);

이중 q=_ORDER*0.00001;

이중 j=q+1;

이중 v=w/j;

이중 제한1= NormalizeDouble(v,_Digits);

// Print("limit level= ",limit);

이중 k=_STOP*0.00001;

이중 y=k+1;

이중 u=w/y;

이중 SL1= NormalizeDouble(u,_Digits);

//Print("정지 레벨= ",SL);

이중 g=_TP*0.00001;

double_f=g+1;

더블 _m=w/_f;

이중 TP1= NormalizeDouble(_m,_Digits);


if(시()==Nac)

{

if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1))

{

if(!isTradeToDay(Symbol()))

{

int ticket1=OrderSend(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed); //여기서 열림

}

}

if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1))

{

if(isTradeToDay(Symbol()))

{

int 티켓=OrderSend(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,clrBlueViolet); //여기서 열림

}

}

}

if(시()==콘)

{

부울 결과;

정수 오류;

//----

동안(OrdersTotal()>0)

{

if(주문선택(0,SELECT_BY_POS,MODE_TRADES))

{

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

result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS),3,CLR_NONE);

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

결과=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS),3,CLR_NONE);

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

주문삭제(주문티켓());

if(결과!=TRUE)

{

오류=GetLastError();

Print("마지막 오류 = ",오류, " ",Symbol());

}

또 다른

오류=0;

}

또 다른

Print("주문 선택 시 오류", GetLastError());

}

}

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

//| |

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

리턴(0);

}

다음은선언된 변수 가 없는 코드입니다.

 
sibiriyak73 :

코드를 삽입해야 합니다. Alt+S
그리고 기능은 어디에 있습니까?
어떻게 컴파일 했습니까? 실수 없어?

 
Iurii Tokman :

코드를 삽입해야 합니다. Alt+S
기능은 어디에 있습니까?
어떻게 컴파일 했습니까? 실수 없어?

아래 기능. 오류 없는 컴파일. 조정된 매도측은 다른 상품에 열려 있는 거래가 있더라도 특정 상품에 대해 하나의 거래를 엽니다.

도구. 그러나 매수측은 매 틱마다 거래로 엉망이 되고 그게 다야

 
Iurii Tokman :

코드를 삽입해야 합니다. Alt+S
기능은 어디에 있습니까?
어떻게 컴파일 했습니까? 실수 없어?

현재 코드는 이렇습니다. 매도측은 괜찮지만 매수측은 매 틱마다 거래입니다.
 
sibiriyak73 :
현재 코드는 이렇습니다. 매도 쪽은 괜찮지만 매수 쪽은 매 틱마다 거래입니다.

구매 측에서 동일한 작업을 수행합니다.

 
Iurii Tokman :

구매 측에서 동일한 작업을 수행합니다.

isTradeToDay 함수에서 정확히 무엇을 변경해야 구매 측에서 판매 측과 동일하게 되는지 알 수 없습니다. 구매 측이 여전히 작동하지 않습니다 :(