[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 284

 
EUR/USD 쌍 에서 .
 
waitra >> :

int NumberOfPos_HISTORY

나는 그것을 시도했습니다. 그것은 열려있는 현재 위치의 수만 고려합니다. 기록은 주문이 어떻게 마감되는지 고려하지 않습니다. 값이 0으로 돌아갑니다. 아마도 변경할 다른 것이 있습니까?

여기 내가 좋아하는 것이 있습니다. I. Kim의 다른 기능을 가져와서 약간 변경했습니다.

시계처럼 작동

START 기능에서 제어할 수 있습니다.

Comment ("ордера на истории= ",NumberOfPos_HISTORY_2(NULL,-1,Magic));

다음은 함수 자체입니다.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru            |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                  |
//|  Описание : Возвращает кол-во ордеровиз из  истории счета  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                           |
//|    sy - наименование инструмента   (""   - любой символ, |
//|                                     NULL - текущий символ)        |
//|    op - операция                   (-1   - любая позиция)       |
//|    mn - MagicNumber                (-1   - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfPos_HISTORY_2 ( string sy = "" , int op = - 1 , int mn = - 1 ) {
     int      i , k = OrdersHistoryTotal ( ) , kp = 0 ;
  if ( sy = = "0" ) sy = Symbol ( ) ;
  for ( i = 0 ; i < k ; i + + ) {
    if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
      if ( OrderSymbol ( ) = = sy | | sy = = "" ) {
        if ( OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_SELL ) {
          if ( op < 0 | | OrderType ( ) = = op ) {
            if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) {               
                if ( OrderProfit ( ) < 0 | | OrderProfit ( ) > = 0 ) kp + + ;           
            }  } } } }  }  return ( kp ) ; } 


 

여러분, 안녕하세요!!

 //+------------------------------------------------------------------+
//|                                                   SimpleMA22.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

//---- input parameters
extern int        MAFP = 21 ;
extern int        MASP = 55 ;
extern double     Lots = 0.1 ;
extern int        StopLoss = 60 ;
extern int        TakeProfit = 30 ;
extern int        MagicNumber = 123456 ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ( )
   {
//----
   
//----
   return ( 0 ) ;
   }
  
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit ( )
   {
//----
   
//----
   return ( 0 ) ;
   }
   
bool CheckOrders ( int Type )
{
 bool Result = True ;
 for ( int i = 0 ; i < OrdersTotal ( ) ; i + + )
   if ( OrderSelect ( i , SELECT_BY_POS ) )
   if ( OrderMagicNumber ( ) = = MagicNumber & & OrderSymbol ( ) = = Symbol ( ) )
       if ( OrderType ( ) = = Type )
         {
         if ( Type = = OP_BUY )
           if ( ! OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 0 ) )
             Result = False ;
         if ( Type = = OP_SELL )
           if ( ! OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 0 ) )
             Result = False ;
         } 
         else Result = False ;
 return ( Result ) ; 
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ( )
   {
//----
     // Узнаем уровень стопов и спрэд
     int Spread = MarketInfo ( Symbol ( ) , MODE_SPREAD ) ;
     int StopLevel = MarketInfo ( Symbol ( ) , MODE_STOPLEVEL ) ;

     // Рассчитываем значения средних на 0-ом и 1-ом барах
     double MAF_0 = iMA ( NULL , 0 , MAFP , 0 , 1 , 1 , 0 ) ;
     double MAF_1 = iMA ( NULL , 0 , MAFP , 0 , 1 , 1 , 1 ) ;
     double MAS_0 = iMA ( NULL , 0 , MASP , 0 , 1 , 1 , 0 ) ;
     double MAS_1 = iMA ( NULL , 0 , MASP , 0 , 1 , 1 , 1 ) ;
    
     // открытие позиции Buy покупка
     if ( MAF_1 < MAS_1 & & MAF_0 > MAS_0 )
     if ( CheckOrders ( OP_SELL ) )
       {
       if ( StopLoss < = StopLevel + Spread )
         double SL = 0 ;
         else
         SL = Ask - StopLoss * Point ;
       if ( TakeProfit < = StopLevel - Spread )
         double TP = 0 ;
         else
         TP = Ask + TakeProfit * Point ;
       if ( ! OrderSend ( Symbol ( ) , OP_BUY , Lots , Ask , 5 , SL , TP , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Buy. Ошибка №" , GetLastError ( ) ) ; 
       }
    
     // Открытие позиции Sell продажа  
     if ( MAF_1 > MAS_1 & & MAF_0 < MAS_0 )
     if ( CheckOrders ( OP_BUY ) )
       {
       if ( StopLoss < = StopLevel + Spread )
         SL = 0 ;
         else
         SL = Bid + StopLoss * Point ;
       if ( TakeProfit < = StopLevel - Spread )
         TP = 0 ;
         else
         TP = Bid - TakeProfit * Point ;
       if ( ! OrderSend ( Symbol ( ) , OP_SELL , Lots , Bid , 5 , SL , TP , NULL , MagicNumber ) )
         Print ( "Не открыт ордер Sell. Ошибка №" , GetLastError ( ) ) ; 
       }
//----
   return ( 0 ) ;
   } //+------------------------------------------------------------------+


찐하고 찐하고 꺼진 두뇌.....

술취한 사람들이 참호를 파게 하거나 노숙자들이 쓰레기 수거를 조직하게 하는 방법을 알아내는 것이 .............보다 쉬울 것입니다.

이 스레드의 시작 부분에서 나와 비슷한 문제가 발생했습니다. 읽었다, 읽었다....아직도 들어가보지는 않았지만 대화는 깃발에 대한 것이었다...

아이디어는 간단합니다. 가장 단순한 SimpleMA이지만 sebe용으로 약간 수정되었지만 근본적으로 그렇지는 않습니다.

EA가 구매(구매)하기 위해 추가해야 하는 기능 ?

추가 조건이 있는지 여부입니다.

 

아마도 https://www.mql5.com/ru/forum/107476/page21 기능이 도움이 될 것입니다.

isCloseLastPosByTake() 함수.
이 함수는 take로 마지막 위치를 닫기 위한 플래그를 반환합니다.

플래그가 제기됨 - True - TakeProfit이 작동했습니다.

플래그가 생략됨 - False - 다른 이유로 포지션이 마감되었습니다.


코드의 맨 끝에 함수 자체를 넣습니다. 판매 조건에 추가:

 if ( isCloseLastPosByTake ( NULL , OP_BUY , MagicNumber ) = = true ) { //продаем
 
xmurik писал(а) >>
EUR/USD 쌍에서.
 //+------------------------------------------------------------------+
//|                                                       скрипт.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start ( )
   {
//----
   int kolvo_barov = 1000 ;
   double start_price = iOpen ( Symbol ( ) , 0 , kolvo_barov ) ;
   int handle ;
   handle = FileOpen ( "my_data.csv" , FILE_WRITE|FILE_CSV , '\t' ) ;
   if ( handle > 0 ) {
       while ( kolvo_barov > 1 ) {
         if ( iHigh ( Symbol ( ) , 0 , kolvo_barov ) > start_price + 0.01 ) {
             FileWrite ( handle , "+100" ) ;
            start_price = start_price + 0.01 ;
         }       
         if ( iHigh ( Symbol ( ) , 0 , kolvo_barov ) < start_price + 0.01 ) {
             FileWrite ( handle , "-100" ) ;
            start_price = start_price - 0.01 ;
         }      kolvo_barov--;
       }
       FileClose ( handle ) ;
   }
   return ( 0 ) ;
}
//+------------------------------------------------------------------+
바라보다. 다만 확인을 하지 않았을 뿐입니다. 오류가 있을 수 있습니다
 

착한 사람들. 나는 모멘텀이 모멘텀이 아닌 이유를 이해하지 못합니다(그림 참조).


기세

0보다 높은 이유를 설명해 주십시오.
 
rid писал(а) >>

여기 내가 좋아하는 것이 있습니다. I. Kim의 다른 기능을 가져와서 약간 변경했습니다.

시계처럼 작동

START 기능에서 제어할 수 있습니다.


다음은 함수 자체입니다.

예, 모든 것이 작동합니다! 제거 , 대단히 감사합니다! 고맙습니다! 행운을 빕니다!

 
warlock писал(а) >>

돕다!!! EA는 새 양초가 열릴 때 거래를 시작해야 하지만 양초의 시작 부분에 개장하는 것 외에도 "왼쪽" 양초도 혼란스럽게 엽니다...

게다가 상한과 하한을 할당한 후 구매를 중단했는데...판매만...

그리고 OrderSend() 에 무엇이 있는지 주의 깊게 살펴보는 것은 운명이 아닙니다. 하나는 실수로 충돌하고 다른 하나는 작동합니다.

 if ( AllowBUY ) 
   tick = OrderSend ( Symbol ( ) , OP_SELLSTOP , Lot , price1 , 3 , ( price1 - SL * Point ) * loss , ( price1 - TP * Point ) * profit , "scriptSELLstop" , CLR_NONE , expiration ) ;
if ( AllowSELL ) 
   tick = OrderSend ( Symbol ( ) , OP_SELLSTOP , Lot , price2 , 3 , ( price2 + SL * Point ) * loss , ( price2 - TP * Point ) * profit , "scriptSELLstop" , CLR_NONE , expiration ) ;
 
warlock >> :

돕다!!! EA는 새 양초가 열릴 때 거래를 시작해야 하지만 양초의 시작 부분에 개장하는 것 외에도 "왼쪽" 양초도 혼란스럽게 엽니다...

게다가 상한과 하한을 할당한 후 구매를 중단했는데...판매만...

감사합니다 ... 한 시간 동안 앉아있었습니다 ... 문제가 무엇인지 이해할 수 없었습니다 ... 때로는 누군가가 저지른 실수에 눈을 떠야합니다 ...

 
안녕하세요 여러분, 아무도 AC 표시기에 고문을 쓰는 것을 도울 수 있습니까?