[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 282

 
Hangisi olduğunu söyleyebilir misin? Sadece 2. MACD ve Hareketli Ortalamalarım var.
 

Lütfen yeni başlayan birine yardım edin. Bunun gibi bir kod parçası nasıl yazılır:

Piyasa emirlerini kontrol ediyoruz ve finansal aracımız için piyasa emri yoksa alım mı yapıyoruz?

Ayrıca , İzleyen Durağı gerçek fiyattan 500 puan uzaklıkta yeniden düzenleyen bir kod satırına da ihtiyacınız var.

Yardım!!!

Ve hangi bölüm (tam olarak nereden ve nereye)?

 //+------------------------------------------------------------------+
//|                                                  MACD Sample.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

extern double TakeProfit = 50 ;
extern double Lots = 0.1 ;
extern double TrailingStop = 30 ;
extern double MACDOpenLevel= 3 ;
extern double MACDCloseLevel= 2 ;
extern double MATrendPeriod= 26 ;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double MacdCurrent, MacdPrevious, SignalCurrent;
   double SignalPrevious, MaCurrent, MaPrevious;
   int cnt, ticket, total;
// initial data checks
// it is important to make sure that the expert works with a normal
// chart and the user did not make any mistakes setting external 
// variables (Lots, StopLoss, TakeProfit, 
// TrailingStop) in our case, we check TakeProfit
// on a chart of less than 100 bars
   if ( Bars < 100 )
     {
       Print ( "bars less than 100" );
       return ( 0 );  
     }
   if (TakeProfit< 10 )
     {
       Print ( "TakeProfit less than 10" );
       return ( 0 );   // check TakeProfit
     }
// to simplify the coding and speed up access
// data are put into internal variables
   MacdCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 0 );
   MacdPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN, 1 );
   SignalCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 0 );
   SignalPrevious= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL, 1 );
   MaCurrent= iMA ( NULL , 0 ,MATrendPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
   MaPrevious= iMA ( NULL , 0 ,MATrendPeriod, 0 , MODE_EMA , PRICE_CLOSE , 1 );

   total= OrdersTotal ();
   if (total< 1 ) 
     {
       // no opened orders identified
       if ( AccountFreeMargin ()<( 1000 *Lots))
        {
         Print ( "We have no money. Free Margin = " , AccountFreeMargin ());
         return ( 0 );  
        }
       // check for long position (BUY) possibility
       if (MacdCurrent< 0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
         MathAbs (MacdCurrent)>(MACDOpenLevel* Point ) && MaCurrent>MaPrevious)
        {
         ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 3 , 0 ,Ask+TakeProfit* Point , "macd sample" , 16384 , 0 , Green );
         if (ticket> 0 )
           {
             if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "BUY order opened : " , OrderOpenPrice ());
           }
         else Print ( "Error opening BUY order : " , GetLastError ()); 
         return ( 0 ); 
        }
       // check for short position (SELL) possibility
       if (MacdCurrent> 0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && 
         MacdCurrent>(MACDOpenLevel* Point ) && MaCurrent<MaPrevious)
        {
         ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid, 3 , 0 ,Bid-TakeProfit* Point , "macd sample" , 16384 , 0 , Red );
         if (ticket> 0 )
           {
             if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "SELL order opened : " , OrderOpenPrice ());
           }
         else Print ( "Error opening SELL order : " , GetLastError ()); 
         return ( 0 ); 
        }
       return ( 0 );
     }
   // it is important to enter the market correctly, 
   // but it is more important to exit it correctly...   
   for (cnt= 0 ;cnt<total;cnt++)
     {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
       if ( OrderType ()<=OP_SELL &&   // check for opened position 
         OrderSymbol ()== Symbol ())   // check for symbol
        {
         if ( OrderType ()==OP_BUY)   // long position is opened
           {
             // should it be closed?
             if (MacdCurrent> 0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
               MacdCurrent>(MACDCloseLevel* Point ))
                {
                 OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , Violet ); // close position
                 return ( 0 ); // exit
                }
             // check for trailing stop
             if (TrailingStop> 0 )  
              {                 
               if (Bid- OrderOpenPrice ()> Point *TrailingStop)
                 {
                   if ( OrderStopLoss ()<Bid- Point *TrailingStop)
                    {
                     OrderModify ( OrderTicket (), OrderOpenPrice (),Bid- Point *TrailingStop, OrderTakeProfit (), 0 , Green );
                     return ( 0 );
                    }
                 }
              }
           }
         else // go to short position
           {
             // should it be closed?
             if (MacdCurrent< 0 && MacdCurrent>SignalCurrent &&
               MacdPrevious<SignalPrevious && MathAbs (MacdCurrent)>(MACDCloseLevel* Point ))
              {
               OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Violet ); // close position
               return ( 0 ); // exit
              }
             // check for trailing stop
             if (TrailingStop> 0 )  
              {                 
               if (( OrderOpenPrice ()-Ask)>( Point *TrailingStop))
                 {
                   if (( OrderStopLoss ()>(Ask+ Point *TrailingStop)) || ( OrderStopLoss ()== 0 ))
                    {
                     OrderModify ( OrderTicket (), OrderOpenPrice (),Ask+ Point *TrailingStop, OrderTakeProfit (), 0 , Red );
                     return ( 0 );
                    }
                 }
              }
           }
        }
     }
   return ( 0 );
  }
// the end.

Hayır, bu biraz saçmalık! Herhangi bir emir varsa: en azından beklemede, en azından piyasa ve dahası, herhangi bir fin için. enstrüman, aşağıdaki kodla hiçbir sipariş açılmayacaktır:

   total= OrdersTotal ();
   if (total< 1 )

Herhangi bir emirden birden azı varsa, daha sonra yürütüleceği hemen açıktır. Yoksa yanılıyor muyum?

 

MovingAverage'den CalculateCurrentOrders(Symbol()) alın, değerleri döndürür = açık siparişlerin sayısı, sembol ve sihirle filtreleme, işareti ile = işlem yönü: örneğin -1, 1 satış emri anlamına gelir. Gerekirse, işareti yok saymak için MathAbs() kullanın.

Sondakini yukarıdaki koddan alın:

// sondaki durağı kontrol et - burada yorumlar bile var.

if(TrailingStop>0) { ... }, 2 yerde var - alım satım için. Her şey basit. Veya Igor Kim'in hazır işlevlerini kullanın, bir yerlerde özel bir iplik var. Bunlar daha evrenseldir, gerçek ticaret için daha doğrudur, ancak yeni başlayanlar için anlaşılması biraz daha zordur. Genel olarak, bu mql size verildi, gerçekten icat edilen kase mi?

ps hata ayıklamak için Print()'i çok yararlı kullanın.

 
rusa : Büyük bir istek.Bu işlevi danışmana kendiniz girebilir misiniz? Resim, bir çubukta açılan 3 siparişi göstermektedir. Ve sadece bir taneye ihtiyacın var. Kodu düzeltemiyorum. TEŞEKKÜRLER.

Kodunuzu aramaya başladınız. Şaşırdım. Gönderdiğiniz kişi çalışmıyor. Parçalardan monte edildiği görülüyor ama en azından braketler doğru yerleştirilecekti, değişkenler tanımlandı. Ve sinyalle - süresiz olarak, örneğin, "rsi>30" - RSI göstergesinin değeri veya başka bir şey ne anlama geliyor? Başlatma işlevinin içinde, Trade_BUY()... işlevi yuvalanmıştır ve bu böyle devam eder.

Genel olarak, ya çalışan tam kodu verin (açılan siparişler) ya da sinyaller, takip vb. için teknik özellikleri atın, sıfırdan yazmam benim için daha kolay olacaktır.

 
nuan :

MICEX tekliflerini 2 yıl boyunca nasıl indireceğinize dair ayrıntılı talimatlar bulabilirsiniz, örneğin, Lukoil, finansal bilgi vermiyor - sürenin çok uzun olduğunu söylüyor ve

bunları doğru bir şekilde nasıl çevireceğim ve mt4'te nasıl açacağım linkler varsa bunun nasıl yapılacağına dair linkler verin.

PS Şimdiden teşekkürler.


Burada birkaç yıldır mamba
http://zalil.ru/31909547
 
kolyango :

Lütfen yeni başlayan birine yardım edin. Bunun gibi bir kod parçası nasıl yazılır:

Piyasa emirlerini kontrol ediyoruz ve finansal aracımız için piyasa emri yoksa alım mı yapıyoruz?

Ayrıca , İzleyen Durağı gerçek fiyattan 500 puan uzaklıkta yeniden düzenleyen bir kod satırına da ihtiyacınız var.

Yardım!!!

Ve hangi bölüm (tam olarak nereden ve nereye)?

Hayır, bu biraz saçmalık! Herhangi bir emir varsa: en azından beklemede, en azından piyasa ve dahası, herhangi bir fin için. enstrüman, aşağıdaki kodla hiçbir sipariş açılmayacaktır:

Herhangi bir emirden birden azı varsa, daha sonra yürütüleceği hemen açıktır. Yoksa yanılıyor muyum?


Belki bu yüzden?

for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect (i,SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == ... çift)
{
if(OrderType() == OP_BUY || OrderType() == OP_SEL)
{
SiparişGönder(Symbol(),OP_BUY, .......

}
}
}

 

Yardıma ihtiyacınız var:

hat kesildiğinde olağan Hareketli Ortalama göstergesi, bir Al (yukarı) veya Sat (aşağı) sinyali belirir,

Bir grafik nesnesi için hazır bir kodu olan var mı ???, onu düzenleyebilirsiniz!

Teşekkür ederim.

 
bu tür hindiler veritabanında
 
ZZZEROXXX :
bu tür hindiler veritabanında
Bir bağlantı için minnettar olurum.
 

Merhaba! Büyüme/düşme için çubukların kontrolünü nasıl "döngüleyeceğimi" söyleyebilir misiniz? Yani bu durumu anlatmak için mümkün olduğu kadar kısa

Kapat[0]>Aç[0]&& Kapat[1]>Aç[1]&& Kapat[2]>Aç[2]&& Kapat[3]>Aç[3]&& Kapat[4]>Aç[4]&& Kapat[5]>Aç[5]&& Kapat[6]>Aç[6]&& Kapat[7]>Aç[7]

şimdiden teşekkürler.