Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1037

 
Tema97 :

Ben şimdi ne yapmalıyım??? Kanala dayalı bir stratejim var - alternatif bir alternatif var mı?

Tabii ki var. Değerleri hesaplayın, bir diziye veya yapıya kaydedin ve EA için oradan alın. Oradan da nesneler çizebilirsiniz - değerler var.
 
Tema97 :

Ben şimdi ne yapmalıyım??? Kanala dayalı bir stratejim var - alternatif bir alternatif var mı?

Neden gömülü? Göstergeyi iCustom aracılığıyla yoklayın.
Satılık, #resource ile gömebilirsiniz ( Kaynak Kullanımı )
 
Aşağıdakileri uygulamak istiyorum
BİR sayfaya farklı zaman dilimleri ekleme yeteneği (farklı pencerelerde ancak aynı sayfada)
lütfen bana nerede ve nerede kazacağımı söyle?))) mümkün mü, öyleyse, mql veya WInApi aracılığıyla mı?
belki bulamadığım yazı örnekleri vardır (
 
kocunyc89 :

lütfen düzeltmeme yardım et! 'Void' hatası veriyor - tip 36 4 olmadan bildirim ve nereye taşınmalı veya dönüş girilmeli?
//------------------------------------------------ --------------------
Geçersiz OnTick()
{

void büyük harfle değil küçük küçük harfle yazılır. Bak, bu farklı bir renk. İmleci bu kelimenin üzerine getirin ve F1'e basın - genellikle yardımcı olur.

Düzeltmeden sonra çok fazla hata mesajı var... Hata mesajlarını ortadan kaldırdı, ancak mantığı kendiniz kontrol edin

 #property strict

bool Результат;

extern int    SL             = 200 ,       //Стоплосс в пунктах
             TStop          = 20 ,       //
             TStep          = 10 ,       //
             TP             = 85 ;       //Тейкпрофит в пунктах
//extern double Lot          = 0.10;     //используется только при risk = 0
extern double Lots           =   0 ;       // лот, если 0, то динамический
extern double RiskPercentage =   50 ;       // % от депо на лот, если динамический
extern int     MaxOrders      = 6 ;         //Максимальное кол-во ордеров одного направления

//--------------------------------------------------------------------
int STOPLEVEL,Magic= 123321 ,tip;
datetime TimeBar;

string txt;
//--------------------------------------------------------------------
int init()
{
   if ( Digits == 3 || Digits == 5 )
   {
      TStop *= 10 ;
      TStep *= 10 ;
      SL    *= 10 ;
   }
   return ( INIT_SUCCEEDED );
}


//--------------------------------------------------------------------
void OnTick ()
{
   double Lot = Lots;
   int Ticket = 0 ;
   if (Lots== 0 )
  {
     double margin = MarketInfo( Symbol (), MODE_MARGINREQUIRED);
     double minLot = MarketInfo( Symbol (), MODE_MINLOT);
     double maxLot = MarketInfo( Symbol (), MODE_MAXLOT);
     double step   = MarketInfo( Symbol (), MODE_LOTSTEP);
     double account = AccountFreeMargin();
     double percentage = account*RiskPercentage/ 100 ;
  
    Lot = MathRound (percentage/margin/step)*step;
  
     if (Lot < minLot) Lot = minLot;

     if (Lot > maxLot)Lot = maxLot;
  }

   int buy= 0 ,sell= 0 ;
   for ( int i= 0 ; i< OrdersTotal (); i++)
  {
     if ( OrderSelect (i, SELECT_BY_POS))
    {
         if (OrderSymbol()!= Symbol () || OrderMagicNumber()!=Magic) continue ;
         tip=OrderType();
         if (tip== 0 ) buy++;
         if (tip== 1 ) sell++;
    }  
  }

   Comment (txt, "\nБаланс " ,DoubleToStr(AccountBalance(), 2 ), "\nЭквити " ,DoubleToStr(AccountEquity(), 2 ), "\nBuy " ,buy, "\nSel " ,sell);
   double TrPr= 0 ,StLo= 0 ;
   double L    = NormalizeDouble (Low[ 0 ], Digits );
   double L1   = NormalizeDouble (Low[ 1 ], Digits );
   double L2   = NormalizeDouble (Low[ 2 ], Digits );
   double L3   = NormalizeDouble (Low[ 3 ], Digits );

   double H   = NormalizeDouble (High[ 0 ], Digits );
   double H1  = NormalizeDouble (High[ 1 ], Digits );
   double H2  = NormalizeDouble (High[ 2 ], Digits );
   double H3  = NormalizeDouble (High[ 3 ], Digits );

   double O   = NormalizeDouble (Open[ 0 ], Digits );
   double O1  = NormalizeDouble (Open[ 1 ], Digits );
   double O2  = NormalizeDouble (Open[ 2 ], Digits );
   double O3  = NormalizeDouble (Open[ 3 ], Digits );

   double C   = NormalizeDouble (Close[ 0 ], Digits );
   double C1  = NormalizeDouble (Close[ 1 ], Digits );
   double C2  = NormalizeDouble (Close[ 2 ], Digits );
   double C3  = NormalizeDouble (Close[ 3 ], Digits );

                         //LONG
   if (buy<MaxOrders  && TimeBar!=Time[ 0 ]&& H>H1&&H1>H2&&H2>H3)
  {
     if (TP!= 0 ) TrPr = NormalizeDouble (Ask + TP * Point , Digits );
     if (SL!= 0 ) StLo = NormalizeDouble (Bid - SL * Point , Digits );
    Ticket= OrderSend ( Symbol (),OP_BUY, Lots, NormalizeDouble (Ask, Digits ), 3 , 0 , 0 , "BreakdownLevelCandleMA" ,Magic, 0 ,Blue);
     if (Ticket== 0 )
     Print ( "Error BUY" , GetLastError (), "" , Symbol (), "   Lot " ,Lot, "   SL " ,StLo, "   TP " ,TrPr);
     else
    {
      Результат=OrderModify(Ticket,OrderOpenPrice(),StLo,TrPr, 0 ,Blue);
      TimeBar=Time[ 0 ];
    }
  }

                                   //SHORT
   if (sell<MaxOrders && TimeBar!=Time[ 0 ]&& L>L1&&L1>L2&&L2>L3)
  {
     if (TP!= 0 ) TrPr = NormalizeDouble (Bid - TP * Point , Digits );
     if (SL!= 0 ) StLo = NormalizeDouble (Ask + SL * Point , Digits );
    Ticket= OrderSend ( Symbol (),OP_SELL,Lots, NormalizeDouble (Bid, Digits ), 3 , 0 , 0 , "BreakdownLevelCandleMA" ,Magic, 0 ,Red);
     if (Ticket== 0 )
     Print ( "Error SELL" , GetLastError (), "" , Symbol (), "   Lot " ,Lot, "   SL " ,StLo, "   TP " ,TrPr);
     else
    {
      Результат=OrderModify(Ticket,OrderOpenPrice(),StLo,TrPr, 0 ,Red);
      TimeBar=Time[ 0 ];
    }
  }

  Trailing();
}
//!!! куда передвинуть?   return(0);


void Trailing()
{
   for ( int i= OrdersTotal () - 1 ; i>= 0 ; i--)
  {
     if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()== Symbol ()&&OrderMagicNumber()==Magic)
      {
         if (OrderType()==OP_BUY)
        {
           if (Bid-OrderOpenPrice()> TStop* Point || OrderStopLoss() == 0 )
          {
             if (OrderStopLoss()<Bid-(TStep+TStop)* Point || OrderStopLoss() == 0 )
            {
               if (!OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble (Bid-TStop* Point , Digits ), 0 , 0 ))
               Print ( "Ошибка модификации ордера на покупку" );
            }
          }
        }

         if (OrderType()==OP_SELL)
        {
           if (OrderOpenPrice()-Ask>TStop* Point || OrderStopLoss() == 0 )
          {
             if ((OrderStopLoss()> (Ask+(TStep+TStop)* Point ))  || (OrderStopLoss()== 0 )  )
            {
               if (!OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Ask+TStop* Point , Digits ), 0 , 0 ))
                {
                         Print ( "Ошибка модификации ордера на продажу" );
                }
            }
          }
        }
      }
    }
  }
}

 
LRA :

void büyük harfle değil küçük küçük harfle yazılır. Bak, bu farklı bir renk. İmleci bu kelimenin üzerine getirin ve F1'e basın - genellikle yardımcı olur.

Düzelttikten sonra çok fazla hata mesajı var ... Hata mesajları ortadan kaldırıldı, ancak mantığı kendiniz kontrol edin


çok teşekkür ederim nazik insan!

 
Merhaba sevgili tüccarlar! Yukarıda paylaştığım koda göre bir sinyal robotu yazdım. Robot, seçenekler için neredeyse tam olarak, ancak yalnızca iki çubuk gecikmeyle sinyal verir. Aynı sonuçları, ancak iki çubuk daha önce üretmek için kodda hangi değişiklikler yapılmalıdır? Yoksa bu imkansız mı? Teşekkür ederim.
 
Lütfen söyleyin - Özel bir göstergem var - Kanal - Kanalın üst sınırının değerini döndürmem gerekiyor - bunu nasıl yapacağım?
 
artmedia70 :

int değişkeni tam olarak 1970'den bu yana geçen saniye sayısını içerir ve datetime değişkeni tarihi içerir.

Geçmişte belirli bir çubuğa ihtiyacınız varsa, bunu nasıl belirttiğinizin bir önemi yoktur - tarihe veya saniye sayısına göre, her durumda, değişken, gelişinden bağımsız olarak bu belirli çubuğun açılış zamanını gösterecektir. yeni keneler ve yeni çubukların açılması.

Çok teşekkür ederim, neler olduğunu anlayamadığım başka bir pürüz daha var. Stat işlevine sahip bir gösterge var, bu işlev SADECE yeni bir sinyal geldiğinde okunmalı ve bu enfeksiyon her çubukta sayılıyor, ki daha yeni yapmadım ve karşılaştırma yaparken doble'ı normalleştirdim, kısacası eşek. Bütün akşamı öldürdüm, biri neyin yanlış olduğunu açıklayabilir mi ???? 193 satırındaki saldırıdaki gösterge, koşulu olan bir işlevi çağırıyor , ancak koşul karşılanmıyor ve her çubuğun gelişinde furction stat hesaplanıyor, zaten bir hata aramaktan yoruldum, Beyler lütfen yardım edin!! !!! Şimdiden teşekkürler....
Dosyalar:
 

Ve şimdi, her ikisi de grafikteyken, gösterge başka bir göstergeden çağrılırsa , stat işlevinin yeniden hesaplandığını öğrendim. Yani, bir kez kendisi için hesaplandığında, onu çağıran gösterge için ikinci kez. Ne olduğunu???

 

İşte aşağıdaki resim. Yukarıdaki yorum. bu, hesaplamanın yapıldığı ana göstergedeki arabelleğin değeridir ve baskı (aşağıda) aynı arabellektir, ANCAK yalnızca başka bir göstergeye çağrılır ve baskıya verilir. Fark önemli, AMA NEDEN!!!!!

ilk dosya ana dosyadır, ikincisi tamponun ilkinden çağrıldığı ....

Dosyalar: