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

 
HUNTERGOOD :

요청, 올바르게, paosta # 4567에서 457페이지에 작성했으며 필요한 모든 것: "필요한 것, 정확히 얼마인지에 대한 지표" - 같은 장소에서 모든 것을 설명하는 것은 전혀 어렵지 않습니다. 모든 것을 간단하고 요점까지 명확하고 이해할 수 있도록 하고 첫 번째 메시지에서 언급하지 않은 내용, 즉 코드를 이해하는 첼라에 대한 나의 사소한 요청이 6페이지 동안 무시되었고 결과적으로 " "헤드라이트"에서 저를 흔들기 - 나는 여기에 비트를 씁니다. 중복 요청:

(((^^^ 안녕하세요 여러분. 프로그래머 여러분, 각 Alert3.Lv1;2;3에 대해 사운드 파일을 지정할 수 있는 기능이 있는 표시기에 한 줄을 삽입하여 다른 사운드가 트리거되도록 도와주세요. 나 자신은 코드와 프로그래밍을 이해하지 못한다.^^^)))

차트에 넣어 봤는데 효과가 있습니까?

 

말해 주세요: 주문이 있는 즉시 중지 및 테이크를 설정하고 싶습니다. 고문이 주문을 열면 중지하고 테이크하십시오. 교환원이 주문을 열면 중지하고 테이크하십시오. 이것을 설명하는 가장 좋은 방법은 무엇입니까? 나중에 고문과 교환원이 누구의 주문이 어디에 있는지 이해할 수 있도록!

코드는 이러하고 모든 것이 작동하는 것처럼 보이지만 맞습니까?

아니면 각 주문 유형 (전문가 고문 또는 운영자)에 대해 FOR를 통해 검색을 구성해야 합니까?

파일:
STOP_TAKE.txt  4 kb
 

어떻게: 하나

2

 
Rewerpool :

어떻게:

여기 에 코드가 일반적으로 삽입 됩니다. 대부분의 사람들은 여기에서 사진을 분류하기에는 너무 게으릅니다.

 
Konstantin Nikitin :

여기 에 코드가 일반적으로 삽입 됩니다. 대부분의 사람들은 여기에서 사진을 분류하기에는 너무 게으릅니다.

그리고 처음에는 전체 코드가 첨부된 것 같습니다! 파일만! 메시지 . 이어 그는 사진으로 상황을 간략하게 설명했다!

 

주문 유형 (전문가 고문 또는 운영자)에 대해 FOR를 통해 검색을 구성해야 합니까?



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

//| 기능 미결 주문을 위한 스탑 및 테이크 배치 |
//+----------------------------------------------- --------------------+
무효 STOP_TAKE()
{
int 팁, 티켓;
더블 OOP, OSL, OTP;
int SPREAD = (int)MarketInfo(Symbol(),MODE_SPREAD);
if (stoploss<STOPLEVEL) stoploss=0;
if (takeprofit<STOPLEVEL) takeprofit=0;
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
tip=주문 유형();
//----------전문가 고문의 명령이 있는 경우
if(tip<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==매직)
{
OSL = OrderStopLoss();
OTP = OrderTakeProfit();
if ((OSL==0&&stoploss!=0)||(OTP==0&&takeprofit!=0))
{
OOP = OrderOpenPrice();
티켓 = OrderTicket();
if (tip==OP_BUY || tip==OP_BUYSTOP || tip==OP_BUYLIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); 그렇지 않으면 TP=OTP;
if (스톱로스!=0) SL = NormalizeDouble(OOP - (스톱로스+스프레드)* 포인트, 자릿수); 그렇지 않으면 SL=OSL;
if (OrderModify(Ticket,OOP,SL,TP,0,White)) Print("SetStop ",Ticket," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP );
else Print(Symbol()," 오류 STOP_TAKE", GetLastError()," 티켓 ", 티켓);
}
if (tip==OP_SELL || tip==OP_SELLSTOP || tip==OP_SELLLIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); 그렇지 않으면 TP=OTP;
if (stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* 포인트, 자릿수); 그렇지 않으면 SL=OSL;
if (OrderModify(티켓,OOP,SL,TP,0,흰색)) Print("STOP_TAKE",티켓," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP );
else Print(Symbol()," 오류 STOP_TAKE", GetLastError()," 티켓 ", 티켓);
}
}
}
//---------- 연산자가 주문하는 경우
else if(tip<2 && OrderSymbol()==Symbol()&& OrderMagicNumber()!=매직)
{
OSL = OrderStopLoss();
OTP = OrderTakeProfit();
if ((OSL==0&&stoploss!=0)||(OTP==0&&takeprofit!=0))
{
OOP = OrderOpenPrice();
티켓 = OrderTicket();
if (tip==OP_BUY || tip==OP_BUYSTOP || tip==OP_BUYLIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(OOP + takeprofit*Point,Digits); 그렇지 않으면 TP=OTP;
if (스톱로스!=0) SL = NormalizeDouble(OOP - (스톱로스+스프레드)* 포인트, 자릿수); 그렇지 않으면 SL=OSL;
if (OrderModify(티켓,OOP,SL,TP,0,흰색)) Print("STOP_TAKE",티켓," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP );
else Print(Symbol()," 오류 STOP_TAKE", GetLastError()," 티켓 ", 티켓);
}
if (tip==OP_SELL || tip==OP_SELLSTOP || tip==OP_SELLLIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(OOP - takeprofit*Point,Digits); 그렇지 않으면 TP=OTP;
if (stoploss!=0) SL = NormalizeDouble(OOP + (stoploss+SPREAD)* 포인트, 자릿수); 그렇지 않으면 SL=OSL;
if (OrderModify(티켓,OOP,SL,TP,0,흰색)) Print("STOP_TAKE",티켓," SL ",OSL," -> ",SL," TP ",OTP," -> ",TP );
else Print(Symbol()," 오류 STOP_TAKE", GetLastError()," 티켓 ", 티켓);
}
}
}
}
}
}
 
Rewerpool :

그리고 처음에는 전체 코드가 첨부된 것 같습니다! 파일만! 메시지 . 이어 그는 사진으로 상황을 간략하게 설명했다!

글쎄, 그럼 왜 그림을 조각. 나는 그것에 대해 말한다.

 
Rewerpool : 수동으로 주문한 주문은 0과 같은 마법 번호를 가지며 EA는 자체 마법으로 배치합니다. 마법과 탐색으로.
 

@Konstantin 니키틴 OK! Expert Advisor나 Operator에 의한 Stop Take를 열기 위한 코드의 구성이 올바릅니까? 그래서 질문을 더 명확하게하기 위해 사진을 첨부했습니다!

 
Rewerpool :

@Konstantin 니키틴 OK! Expert Advisor나 Operator에 의한 Stop Take를 열기 위한 코드의 구성이 올바릅니까? 그래서 질문을 더 명확하게하기 위해 사진을 첨부했습니다!

글쎄, 나는 이런 일을 할 것이다.

 for ( int i= 0 ; i< OrdersTotal (); i++)
{
     if (! OrderSelect (i, SELECT_BY_POS,MODE_TRADES )) continue ;
     if ( OrderSymbol ()!= Symbol ()) continue ;
     
     int tip = OrderType ();
     if (tip!= OP_BUY && tip!= OP_BUYSTOP && tip!= OP_BUYLIMIT ) continue ;
     
     // переменные которые будут использоваться в любых ордерах
     int Ticket = OrderTicket ();
     double OOP = OrderOpenPrice ();
     
     //---
     switch ( OrderMagicNumber () )
     {
           case Magic:     // Ордера советника
               {
                     // что-то делаем
               }
               break ;

           default :       // Все остальные
               {
                     // что-то делаем
               }
     }
}