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

 
Tenimagalon :
오, 토론이 전개된 것을 보니 알렉스와 당신이 합류했습니다. :)) 글쎄, 여러분, 프로그래머 여러분, 합의란 무엇입니까? 참조 기능의 임무는 총 이익으로 동일한 유형의 주문을 마감하는 것입니다. sat. 그리고 반복해야 합니다. 전문가가 마감 또는 매수 또는 매도 주문을 해야 합니다. 매수 및 싯도 아닙니다. 그런 다음 매수 주문이 이익을 받으면 닫습니다. 영장이 작동하지 않을 것입니다. 이다.

잡다

 double MyProfit= 1000 ; // уровень профита
//+--------------------------------------------------------------------------------------------------------------------+
//| Expert tick function                                                                                               |
//+--------------------------------------------------------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (Open_Pr( "" , 0 )>MyProfit)DelOrders( "" , 0 ); // закрываем покупки
   if (Open_Pr( "" , 1 )>MyProfit)DelOrders( "" , 1 ); // закрываем продажи
//---
  }
//+--------------------------------------------------------------------------------------------------------------------+
//|  Суммарный профит в валюте депозита открытых позиций                                                               |
//| or_ty=0 - ордера типа BUY                                                                                          |
//| or_ty=1 - ордера типа SELL                                                                                         |
//+--------------------------------------------------------------------------------------------------------------------+
double Open_Pr( string sy= "" , int or_ty= 0 )
  { double p = 0 ;
   if (sy == "0" ) sy = Symbol ();
   for ( int pos= OrdersTotal ()- 1 ;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS)== true )
        {
         if (OrderSymbol() == sy || sy == "" )
           {
             if (OrderType()==or_ty) {p+=OrderProfit()+OrderSwap()+OrderCommission();}
           }
        }
     }
   return (p);
  }
//+--------------------------------------------------------------------------------------------------------------------+
//| Функция удаления и закрытия ордеров                                                                                |
//| or_ty=0 - ордера типа BUY                                                                                          |
//| or_ty=1 - ордера типа SELL                                                                                         |
//+--------------------------------------------------------------------------------------------------------------------+
void DelOrders( string sy= "" , int or_ty= 0 )
  {
   while ( true )
     {
       bool find_order= false ;
       //----
       if (sy == "0" ) sy = Symbol ();
       for ( int pos= OrdersTotal ()- 1 ;pos>= 0 ;pos--)
       if ( OrderSelect (pos,SELECT_BY_POS)== true )
       if (OrderSymbol() == sy || sy == "" )
        {
         find_order= true ;
         //----
         if (OrderType()==or_ty)
           {
            RefreshRates(); int slip=( int )(((Ask-Bid)/ Point )* 2 );
             if (OrderClose(OrderTicket(),OrderLots(),Bid,slip, clrBlue )== false ){}
           }
         //----
         if (OrderType()==or_ty)
           {
            RefreshRates(); slip=( int )(((Ask-Bid)/ Point )* 2 );
             if (OrderClose(OrderTicket(),OrderLots(),Ask,slip, clrRed )== false ){}
           }
         Alert ( "Все ордера закрыты!" );
        } 
       if (find_order== false ) Alert ( "Нет ордеров!" ); break ;
     } 
  }
//+--------------------------------------------------------------------------------------------------------------------+
 
Tenimagalon :
오, 토론이 전개된 것을 보니 알렉스와 당신이 합류했습니다. :)) 글쎄, 여러분, 프로그래머 여러분, 합의란 무엇입니까? 참조 기능의 임무는 총 이익으로 동일한 유형의 주문을 마감하는 것입니다. sat. 그리고 반복해야 합니다. 전문가가 마감 또는 매수 또는 매도 주문을 해야 합니다. 매수 및 싯도 아닙니다. 그런 다음 매수 주문이 이익을 받으면 닫습니다. 영장이 작동하지 않을 것입니다. 이다.

그렇게? :)

하나

 
MakarFX :

잡다

음 재미있네요 이용해주셔서 감사합니다 :)
 
Taras Slobodyanik :

그렇게? :)


Taras, 당신은 내가 이해하는 대로 2개의 Bai와 1개의 앉아 있는 다른 쌍에 대해 3개의 위치가 열려 있습니다. 이 경우 총 이익에 도달하면 봇이 포즈를 닫습니다. 그리고 당신은 2개의 페어에서 4개의 포지션을 오픈하려고 합니다. Tobizh 2개의 락.이 상황에서, 당신은 당신의 인생에서 결코 총 이익을 얻지 못할 것입니다. 노 락 바이 및 앉았습니다. 그리고 그는 EURUSD 매수를 마감하고 USDCHF를 매수했습니다. 그렇지 않으면 선택한 다른 쌍이 요점이 아닙니다.
 
Taras Slobodyanik :

그렇게? :)


대화 상자 를 직접 만드셨습니까 아니면 SB 를 만드셨습니까?
 
Tenimagalon :
Taras, 당신은 내가 이해하는 대로 2개의 Bai와 1개의 앉아 있는 다른 쌍에 대해 3개의 위치가 열려 있습니다. 이 경우 총 이익에 도달하면 봇이 포즈를 닫습니다. 그리고 당신은 2개의 페어에서 4개의 포지션을 오픈하려고 합니다. Tobizh 2개의 락.이 상황에서, 당신은 당신의 인생에서 결코 총 이익을 얻지 못할 것입니다. 노 락 바이 및 앉았습니다. 그리고 그는 EURUSD 매수를 마감하고 USDCHF를 매수했습니다. 그렇지 않으면 선택한 다른 쌍이 요점이 아닙니다.

많이 사고팔고 있음)

2

 
MakarFX :
대화 상자 를 직접 만드셨습니까 아니면 SB 를 만드셨습니까?

패널이 있습니까?

추신. 당신이 할 경우 아마도 개체를 제외하고

 
Taras Slobodyanik :

패널이 있습니까?

네, 그래서 묻습니다.

직접 하셨다면 코드를 공유해주세요(접기 펼치기, 이동하기)

 
Taras Slobodyanik :

많이 사고팔고 있음)

Taras :) 4개의 포지션을 단계별로 엽니다. 1유로에 1개 구매하고 추장에게 2개 추가 1개 유로에 1개 판매합니다. 또는 매도 포지션은 총 이익으로 마감됩니다. 그리고 스크린샷에서 나는 선험적으로 있어서는 안 되는 하나의 악기에 대한 주문을 봅니다.
 
Tenimagalon :
Taras :) 4개의 포지션을 단계별로 엽니다. 1유로에 1개 구매하고 추장에게 2개 추가 1개 유로에 1개 판매합니다. 또는 매도 포지션은 총 이익으로 마감됩니다. 그리고 스크린샷에서 나는 선험적으로 있어서는 안 되는 하나의 악기에 대한 주문을 봅니다.

구매 또는 판매로 쌍을 그룹화하는 것은 잘못되었습니다.

예를 들어, 한 쌍(구매 포함)에는 달러 구매가 있을 수 있고 다른 쌍(구매 포함)에는 달러 판매가 있을 수 있습니다.