마지막 아이디어 - 페이지 6

 
Pyxlik2009 писал(а) >>
첫 페이지의 인디케이터 코드에 화살표가 나타날 때 포지션을 여는 방법.
EA 코드에서 이름과 extern 변수(문자열 변수는 EA에서 작동하지 않음)를 iCustom(...,...,"...", ..., ....,... ) 귀하의 지표. 행운을 빕니다
파일:
 
구매를 열려면 어떤 코드가 표시되고 어떤 것이 앉았는지(문제는 화살표가 나타날 때 창이 팝업되도록 표시기에 변경을 붙이는 방법을 읽거나 말할 수 있는 곳입니다.
 
Pyxlik2009 писал(а) >>
구매를 열려면 어떤 코드가 표시되고 어떤 것이 앉았는지(문제는 화살표가 나타날 때 창이 팝업되도록 표시기에 변경을 붙이는 방법을 읽거나 말할 수 있는 곳입니다.
구매, 판매 - 구매, 판매.
Alert()가 많이 느려집니다 더 나은 사운드 신호 표시기에서 Beep() 기능의 예
파일:
 
nikost >> :
Buy, Sell- покупка, продажа.
Alert() будет сильно тормозить.Лучше звуковой сигнал.Пример ф-ия Beep() в индикаторе

예, 나는 이것에 대해 이야기하는 것이 아닙니다. voros를 올바르게 설정하지 않았다는 것을 압니다.))) 어떤 표시 코드가 마을을 나타내는지 의미했고 구매 시 더 정확하게 포지션을 여는 방법을 물었습니다. 마을, 로봇에서 무엇을 표시해야 하는지 표시기의 코드 조각이 무엇을 파낼 것인지, 그것이 제가 염두에 두었던 것입니다)))
 

EA는 표시기의 신호에 따라 주문을 열 것이며, 가장 중요한 것은 iCustom(..., ..., "...", ..., ...) 기능에서 혼동하지 않는 것입니다. 저자 Rosh의 기사

 
nikost >> :

EA는 표시기의 신호에 따라 주문을 열 것이며, 가장 중요한 것은 iCustom(..., ..., "...", ..., ...) 기능에서 혼동하지 않는 것입니다. 저자 Rosh의 기사


정말 감사합니다, 지금 시도하겠습니다 :)
 
//+------------------------------------------------------------------+
//|                                          Arrows and Curves EA.mq4 |
//|           Простой эксперт использующий индикатор Стрелки и Линии |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006"
#property link       "kolas@list.ru"

// Параметры торговли для H4 EURUSD
extern double TrailingStop = 30 ;
extern double TakeProfit   = 30 ;
extern double StopLoss     = 80 ;

// Параметры  моего индикатора индикатора 
extern int Length = 20 ;
extern int Deviation = 1 ;
extern double MoneyRisk = 1.0 ;
extern int Signal = 1 ;
extern int Line = 1 ;
extern int Nbars = 10000 ;
extern bool SoundON = TRUE;

// Идентификация эксперта
extern string NameEA       = "Arrows and Curves" ;
extern int MAGICNUM        = 123 ;

double Lots;
double Sloss, Tprof;
bool Buy = false, Sell = false;
static int PrevBar = 0 ;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init() 
  { return ( 0 );}
  
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit() 
  { return ( 0 );}
  
//+------------------------------------------------------------------+
//|  Получение сигналов на покупку и продажу                         |
//+------------------------------------------------------------------+
void Indicators() 
   {                  
      Buy = ( iCustom ( Symbol (), 0 , "BBANDS~1" , Length, Deviation, MoneyRisk, Signal, Line, Nbars, SoundON, 0 , 1 ) > 0 ) && (Time[ 0 ] != PrevBar);
      Sell = ( iCustom ( Symbol (), 0 , "BBANDS~1" , Length, Deviation, MoneyRisk, Signal, Line, Nbars, SoundON, 1 , 1 ) > 0 ) && (Time[ 0 ] != PrevBar);
   }
   
//+------------------------------------------------------------------+
//|  Вывод предупреждения об отправке ордера                         |
//+------------------------------------------------------------------+
void prtAlert( string str = "" ) 
  {
       Print (str);
       Alert (str);
  }
  
//+------------------------------------------------------------------+
//|  Расчет размера ордера                                           |
//+------------------------------------------------------------------+
void LotsSize()
   {
      Lots = FixedLots;
       if (PropotinalLots) Lots = MathCeil (AccountFreeMargin() / 10000 * PercentLots) / 10 ;
       if (Lots > 10000 ) Lots = 10000 ;
   }  
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start() 
  {
   // Проверка истории
   if ( Bars < SSP) 
     {
       Print ( "Not enough bars for this strategy - " , NameEA);
       return (- 1 );
     }
   // Расчет значений индикатора
   Indicators();
   
   // Расчет желаемого размера ордера
   LotsSize();   

   // Трейлинг и разворот
   int totalOrders = OrdersTotal ();
   int numPos = 0 ;

   for ( int i = 0 ; i < totalOrders; i++) 
     {
       OrderSelect (i, SELECT_BY_POS);    
       if (OrderSymbol() == Symbol () && OrderMagicNumber() == MAGICNUM) 
         {
           numPos++;
           // Проверяем покупку
           if (OrderType() == OP_BUY) 
             {
               // Закрываем при развороте
               if (Sell) 
               {
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Blue ); 
                  numPos--;
               }
               else
               // Трейлинг стоп
               if (TrailingStop > 0 ) 
                 {
                   if (Bid - OrderOpenPrice() > TrailingStop* Point ) 
                     {
                       if (OrderStopLoss() < (Bid - TrailingStop* Point ))
                           OrderModify(OrderTicket(), OrderOpenPrice(), 
                                       Bid - TrailingStop* Point , OrderTakeProfit(), 0 , Blue );
                     }
                 }
               
             } 
           else 
             // Проверяем продажу
             {
               // Закрываем при развороте
               if (Buy) 
               {
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Red );
                  numPos--;
               }
               else
               // Трейлинг стоп
               if (TrailingStop > 0 ) 
                 {
                   if (OrderOpenPrice() - Ask > TrailingStop* Point )
                     {
                       if (OrderStopLoss() == 0 || OrderStopLoss() > Ask + TrailingStop* Point )
                           OrderModify(OrderTicket(), OrderOpenPrice(), 
                                       Ask + TrailingStop* Point , OrderTakeProfit(), 0 , Red );
                     }           
                 }
             }
         }
     }
     
   // Открываем новые ордера
   if (numPos < 1 )
     {   
       // Если размер депозита устраивает
       if (AccountFreeMargin() < MinDepo)
         {
           Print ( "Not enough money to trade " , Lots, " lots. Strategy:" , NameEA);
           return ( 0 );
         }
       // Если есть сигнал на покупку
       if (Buy)
         {
           Sloss = Ask - StopLoss * Point ;
           Tprof = Bid + TakeProfit * Point ;
           PrevBar = Time[ 0 ];
             OrderSend ( Symbol (), OP_BUY, Lots, Ask, Slippage, Sloss, Tprof, NameEA + CurTime(), 
                     MAGICNUM, 0 , Green );
           prtAlert( "Buying" ); 
         }
       // Если есть сигнал на продажу
       if (Sell) 
         {
           Sloss = Bid + StopLoss * Point ;
           Tprof = Ask - TakeProfit * Point ;
           PrevBar = Time[ 0 ];
             OrderSend ( Symbol (), OP_SELL, Lots, Bid, Slippage, Sloss, Tprof, NameEA + CurTime(), 
                     MAGICNUM, 0 , Red );
           prtAlert( "Selling" ); 
         }
     } 

   return ( 0 );
  }
오류를 복사할 때
 

네 알겠습니다 지금 코드에서 오류 없이 약간 잘못된 부분을 삭제했습니다 시도하겠습니다

 //+------------------------------------------------------------------+
//|                                          Arrows and Curves EA.mq4 |
//|           Простой эксперт использующий индикатор Стрелки и Линии |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006"
#property link       "kolas@list.ru"

// Параметры торговли для H4 EURUSD
extern double TrailingStop = 30 ;
extern double TakeProfit   = 30 ;
extern double StopLoss     = 80 ;

// Параметры  моего индикатора индикатора 
extern int Length = 20 ;
extern int Deviation = 1 ;
extern double MoneyRisk = 1.0 ;
extern int Signal = 1 ;
extern int Line = 1 ;
extern int Nbars = 10000 ;
extern bool SoundON = TRUE;
extern int SSP             = 6 ; 

// Параметры MM
extern double Slippage     = 3 ;
extern bool PropotinalLots = false; // Реинвестирование
extern double MinDepo      = 100 ;   // Минимальный депозит
extern double FixedLots    = 0.1 ;   // Фиксированный размер ордера
extern double PercentLots  = 10 ;     // Процент реинвестирования

// Идентификация эксперта
extern string NameEA       = "Arrows and Curves" ;
extern int MAGICNUM        = 123 ;

double Lots;
double Sloss, Tprof;
bool Buy = false, Sell = false;
static int PrevBar = 0 ;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init() 
  { return ( 0 );}
  
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit() 
  { return ( 0 );}
  
//+------------------------------------------------------------------+
//|  Получение сигналов на покупку и продажу                         |
//+------------------------------------------------------------------+
void Indicators() 
   {                  
      Buy = ( iCustom ( Symbol (), 0 , "BBANDS~1" , Length, Deviation, MoneyRisk, Signal, Line, Nbars, SoundON, 0 , 1 ) > 0 ) && (Time[ 0 ] != PrevBar);
      Sell = ( iCustom ( Symbol (), 0 , "BBANDS~1" , Length, Deviation, MoneyRisk, Signal, Line, Nbars, SoundON, 1 , 1 ) > 0 ) && (Time[ 0 ] != PrevBar);
   }
   
//+------------------------------------------------------------------+
//|  Вывод предупреждения об отправке ордера                         |
//+------------------------------------------------------------------+
void prtAlert( string str = "" ) 
  {
       Print (str);
       Alert (str);
  }
  
//+------------------------------------------------------------------+
//|  Расчет размера ордера                                           |
//+------------------------------------------------------------------+
void LotsSize()
   {
      Lots = FixedLots;
       if (PropotinalLots) Lots = MathCeil (AccountFreeMargin() / 10000 * PercentLots) / 10 ;
       if (Lots > 10000 ) Lots = 10000 ;
   }  
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start() 
  {
   // Проверка истории
   if ( Bars < SSP) 
     {
       Print ( "Not enough bars for this strategy - " , NameEA);
       return (- 1 );
     }
   // Расчет значений индикатора
   Indicators();
   
   // Расчет желаемого размера ордера
   LotsSize();   

   // Трейлинг и разворот
   int totalOrders = OrdersTotal ();
   int numPos = 0 ;

   for ( int i = 0 ; i < totalOrders; i++) 
     {
       OrderSelect (i, SELECT_BY_POS);    
       if (OrderSymbol() == Symbol () && OrderMagicNumber() == MAGICNUM) 
         {
           numPos++;
           // Проверяем покупку
           if (OrderType() == OP_BUY) 
             {
               // Закрываем при развороте
               if (Sell) 
               {
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Blue ); 
                  numPos--;
               }
               else
               // Трейлинг стоп
               if (TrailingStop > 0 ) 
                 {
                   if (Bid - OrderOpenPrice() > TrailingStop* Point ) 
                     {
                       if (OrderStopLoss() < (Bid - TrailingStop* Point ))
                           OrderModify(OrderTicket(), OrderOpenPrice(), 
                                       Bid - TrailingStop* Point , OrderTakeProfit(), 0 , Blue );
                     }
                 }
               
             } 
           else 
             // Проверяем продажу
             {
               // Закрываем при развороте
               if (Buy) 
               {
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Red );
                  numPos--;
               }
               else
               // Трейлинг стоп
               if (TrailingStop > 0 ) 
                 {
                   if (OrderOpenPrice() - Ask > TrailingStop* Point )
                     {
                       if (OrderStopLoss() == 0 || OrderStopLoss() > Ask + TrailingStop* Point )
                           OrderModify(OrderTicket(), OrderOpenPrice(), 
                                       Ask + TrailingStop* Point , OrderTakeProfit(), 0 , Red );
                     }           
                 }
             }
         }
     }
     
   // Открываем новые ордера
   if (numPos < 1 )
     {   
       // Если размер депозита устраивает
       if (AccountFreeMargin() < MinDepo)
         {
           Print ( "Not enough money to trade " , Lots, " lots. Strategy:" , NameEA);
           return ( 0 );
         }
       // Если есть сигнал на покупку
       if (Buy)
         {
           Sloss = Ask - StopLoss * Point ;
           Tprof = Bid + TakeProfit * Point ;
           PrevBar = Time[ 0 ];
             OrderSend ( Symbol (), OP_BUY, Lots, Ask, Slippage, Sloss, Tprof, NameEA + CurTime(), 
                     MAGICNUM, 0 , Green );
           prtAlert( "Buying" ); 
         }
       // Если есть сигнал на продажу
       if (Sell) 
         {
           Sloss = Bid + StopLoss * Point ;
           Tprof = Ask - TakeProfit * Point ;
           PrevBar = Time[ 0 ];
             OrderSend ( Symbol (), OP_SELL, Lots, Bid, Slippage, Sloss, Tprof, NameEA + CurTime(), 
                     MAGICNUM, 0 , Red );
           prtAlert( "Selling" ); 
         }
     } 

   return ( 0 );
  }
 
오 이제 주문도 열립니다)))
nikost >> :

EA는 표시기의 신호에 따라 주문을 열 것이며, 가장 중요한 것은 iCustom(..., ..., "...", ..., ...) 기능에서 혼동하지 않는 것입니다. 저자 Rosh의 기사

모든 것을 설명해 주셔서 감사합니다. 시각화를 진행하여 그가 어떻게 여는지 볼 것입니다. 이제 이해합니다. 모든 것이 그렇게 복잡하지 않다는 것이 밝혀졌습니다.)))))
 

쿨하다 쿨하지만 그는 화살표가 나타나고 인덕터가 빨간색으로 변하고 그가 주문을 뱉을 때만 주문을 엽니다.

그리고 화살표가 나타나서 주문을 열고 예를 들어 20핍을 취하고 기절하고 새로운 화살표가 지금 나타날 때까지 기다렸다가 가져가는 것이 아니라 멈추면 닫힐 것이지만 이제 고문의 전체 골격을 이해했습니다 다시 감사합니다

nikost >> :

당신 없이는 내 마음을 주지 않을 것입니다))))

이제 화살표가 나타날 때만 열리도록 변경해야 하는 것은 무엇입니까?