[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 578

[Silindi]  

Merhaba.

Soru şu ki, özel bir göstergede standart bir gösterge aramak mümkün mü, ancak standart göstergenin fiyata göre değil, başka bir özel gösterge temelinde hesaplanması için mi?

Teşekkür ederim.

 
Standart kodda ne varsa bunun hesaplanacağı esas alınır. Onlar. yasaktır.
 

Standart kodda ne varsa bunun hesaplanacağı esas alınır. Onlar. yasaktır.

Tabii ki "OnArray" olmadığı sürece
 
valenok2003 >> :
Что в коде стандартного заложено, на основе того он и будет расчитываться. Т.е. нельзя.
ancak standart göstergeye benzer bir algoritma kullanabilirsiniz..
[Silindi]  
SergNF >> :

Если конечно не "OnArray"
Kodda nasıl görünüyor?
 
trader_fx писал(а) >>
Kodda nasıl görünüyor?


Bir diziyi doldurursunuz ve ardından üzerine bir "standart gösterge" (RSIOnArray, CCIOnArray, vb. - yaklaşık 7 parça) ayarlarsınız.

Forumda aşırı derecede bahsediliyor , ancak genel olarak F1, öğretici vb.

 
Pyxlik2009'u açıklayacak olan arkadaşlar yazdı >>

Все слава богу написал но вот сталкнулся с такой проблемой тестится тестится а потом тупо встанет и стоит в чем проблема?

ve bir şekilde test hızını artırabilirsiniz, aksi takdirde uzun süre test etmeyen birden fazla danışmanım var)))


 
Pyxlik2009 >> :
парни кто обьяснит Pyxlik2009 писал(а) >>

Allah'a şükür her şeyi yazdım ama böyle bir sorunla karşılaştım.

ve bir şekilde test hızını artırabilirsiniz, aksi takdirde uzun süre test etmeyen birden fazla danışmanım var)))


Büyük bir zaman diliminde - H4 veya D1, tüm onayların yöntemini kullanarak ve uzun bir süre boyunca optimize ederseniz, bu olur. Kodu optimize etmek, gereksiz tüm döngüleri kaldırmak, arabelleklerin, dizilerin (gerekmediği yerlerde) boyutunu azaltmak gerekir. Açılış fiyatlarının altına Expert Advisor yazmak daha da güzel. Yeterli boş hafıza kaldığından emin olun. Geçmişte, oldukça garip hatalar da vardı - örneğin, [/* ... */] gibi yorumların bol miktarda kullanılması testi büyük ölçüde yavaşlattı ve kaldırıldıktan sonra çalışmaya başladı.

 

İşte yeni başlayanlar için kod lütfen.

 //+------------------------------------------------------------------+
//|                                          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 MA_Period= 13 ;
extern int MA_Shift= 0 ;
extern int MA_Method= 0 ;
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" , MA_Period, MA_Shift, MA_Method,   2 , 2 ) > 0 ) &&  (Time[ 0 ] != PrevBar);
      Sell = ( iCustom ( Symbol (), 0 , "BBANDS~1" , Length, Deviation, MoneyRisk, Signal, Line, Nbars, 3 , 3 ) > 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 );
  }
 
Pyxlik2009 >> :

İşte yeni başlayanlar için kod lütfen.

herkes neden bu kadar uzun sürdüğünü anladı tetetsya))))