son fikir - sayfa 6

 
Pyxlik2009 писал(а) >>
ilk sayfadaki gösterge kodunda bir ok göründüğünde bir pozisyon nasıl açılır.
EA kodunda, adı ve dış değişkenleri (dize değişkenleri EA'da çalışmaz) iCustom(...,...,"...", ..., ....,... ) göstergenizin. iyi şanslar
Dosyalar:
 
hangi kodun satın alma işlemini açmak için olduğunu ve hangisinin oturduğunu gösterir (ve soru, ok göründüğünde bir pencere açılır, böylece göstergeye nasıl bir değişiklik yapabileceğinizi okuyabilir veya söyleyebilirsiniz
 
Pyxlik2009 писал(а) >>
hangi kodun satın alma işlemini açmak için olduğunu ve hangisinin oturduğunu gösterir (ve soru, ok göründüğünde bir pencere açılır, böylece göstergeye nasıl bir değişiklik yapabileceğinizi okuyabilir veya söyleyebilirsiniz
Al, Sat - satın al, sat.
Alert() çok yavaşlar Daha iyi ses sinyali Göstergede Beep() işlevi örneği
Dosyalar:
 
nikost >> :
Buy, Sell- покупка, продажа.
Alert() будет сильно тормозить.Лучше звуковой сигнал.Пример ф-ия Beep() в индикаторе

evet bundan bahsetmiyorum, voroları doğru ayarlamadığımı biliyorum))) Hangi gösterge kodunun köyü gösterdiğini kastetmiştim ve satın almada daha net bir şekilde nasıl pozisyon açılacağını sordum, diyelim ki köy, robotta ne belirtilecek, göstergeden hangi kod parçası çıkarılacaktı, aklımdaki buydu)))
 

EA, göstergenizin sinyali üzerine bir sipariş açacaktır, asıl şey iCustom(..., ..., "...", ..., ...) işlevlerinde kafanızın karışmamasıdır. yazar Rosh'un makaleleri

 
nikost >> :

EA, göstergenizin sinyali üzerine bir sipariş açacaktır, asıl şey iCustom(..., ..., "...", ..., ...) işlevlerinde kafanızın karışmamasıdır. yazar Rosh'un makaleleri


Çok teşekkür ederim hemen deneyeceğim :)
 
//+------------------------------------------------------------------+
//|                                          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 );
  }
hataları kopyalarken (aptal olduğumu anlıyorum, herkesin neyin yanlış olduğunu açıklamasını istiyorum
 

evet anladım kodda ufak bir yanlışlık sildim şuan hatasız deneyeceğim

 //+------------------------------------------------------------------+
//|                                          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 );
  }
 
oh şimdi siparişleri bile açıyor)))
nikost >> :

EA, göstergenizin sinyali üzerine bir sipariş açacaktır, asıl şey iCustom(..., ..., "...", ..., ...) işlevlerinde kafanızın karışmamasıdır. yazar Rosh'un makaleleri

her şeyi açıkladığın için teşekkür ederim, onları nasıl açtığını görmek için görselleştirmeye devam edeceğim, şimdi anlıyorum, o zaman her şeyin o kadar karmaşık olmadığı ortaya çıkıyor))))
 

harika, harika, ancak yalnızca, diyelim ki, bir ok göründüğünde ve indüktör kırmızıya döndüğünde ve siparişleri tükürdüğünde siparişleri açıyor,

Ve bir ok görünmesi, bir emir açması, bir örnek olarak 20 pip alması ve bayılması ve şimdi yeni bir okun görünmesini beklemesi ve alarak olmasa da durarak kapanması gerekir, ancak Danışmanın tüm iskeletini şimdi anladım tekrar teşekkürler

nikost >> :

sensiz aklımı vermezdim))))

nasıl şimdi sadece bir ok göründüğünde açılması için neyin değiştirilmesi gerekiyor?