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

 
biragr :

İlginiz için teşekkür ederim, ancak sorunuzun özünü anlamadım, prensip olarak dün veya yarın için yapabilirsiniz. Çizgi herhangi bir tarihte yerleştirilebilir ve çizelge ona ulaştığında danışman işe yarayacak mı? Ya da bir şeyi anlamıyorum, eğer açıklamak zor değilse.
Tamam, günlere bir çizgi koy, ama ya saatlere gelirse? sipariş açma zamanı hat tarafından mı belirlenecek yoksa kesin olarak mı belirlenecek? Bir aylık programın satırları belirlenmeli veya bağlantımda bir uzman yeterli.
 
kolyango :

Bana yardım et lütfen! https://www.mql5.com/ru/code/10067 göstergesinin (örnek olarak) çalışan basit bir Uzman Danışmana dönüştürülmesi gerekir. Eylem prensibi:

Danışmanın atılacağı çiftte, değer 0.9570'e eşit olur olmaz, sihirli bir sayı ile 0.1 lot satmak için bir piyasa emri açmanız gerekir (böylece danışmanlar emirleri farklı pencerelerde karıştırmaz), Dur 100p Zarar, 200p Kâr Al.

Profesyoneller, sensiz hiçbir yerde!



Yeni başlayan birine yardım edin!
 

kolyango :

Danışmanın atılacağı çiftte, değer 0.9570'e eşit olur olmaz, sihirli bir sayı ile 0.1 lot satmak için bir piyasa emri açmanız gerekir (böylece danışmanlar emirleri farklı pencerelerde karıştırmaz), Dur 100p Zarar, 200p Kâr Al.

Yeni başlayan birine yardım edin!
Tek seferlik Uzman Danışman yazmanın amacı nedir? Bir gecikme koyun ve istediğiniz gibi kendi kendine çalışacaktır. Ve danışmanlarınızı sihire ayarlayın, çünkü gecikme sıfır büyüye sahip olacaktır.
 
Reshetov :
Tek seferlik Uzman Danışman yazmanın amacı nedir? Bir gecikme koyun ve istediğiniz gibi kendi kendine çalışacaktır. Ve danışmanlarınızı sihire ayarlayın, çünkü gecikme sıfır büyüye sahip olacaktır.

Bunu göstergeden nasıl yapacağımı anlamam gerekiyor ...
 

bana neyin yanlış olduğunu söyle? Sorun şu ki, sınır aşıldığında her zaman bir emir açmıyor, yani bazen açılıyor, bazen açılmıyor... Her ne kadar aynı prensibe göre çalışsa da...

 //+------------------------------------------------------------------+
//|                                                      Вайкофф.mq4 |
//|                                                   Sergey Kodolov |
//|                                              84232676421@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Sergey Kodolov"
#property link       "84232676421@mail.ru"



int total,sum,sumr;  
datetime TimeBarH, TimeBarL;

int Crossed ( double nach, double kon, double cenaniz, double cenaverh)
{
   static int last_dir = 0 ;
   static int cur_dir = 0 ;
   
   if (nach<cenaverh && kon>cenaverh)cur_dir= 1 ;
   if (nach>cenaniz && kon<cenaniz)cur_dir= 2 ;
   
   if (cur_dir != last_dir)
   {
      last_dir=cur_dir;
       return (last_dir);
   }
   else
       return ( 0 );
}


  
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }

  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
                     
bool NewBar = New(); //работаем только с нового бара

int volot = volotilnost(NewBar); //определяем волотильность
Hfr(NewBar,volot); //определяем фрактал верхний
Lfr(NewBar,volot); //определяем фрактал нижний

       double BuyLine, SellLine;
   
      BuyLine = ObjectGet ( "upline" ,OBJPROP_PRICE1);
      SellLine = ObjectGet ( "downline" ,OBJPROP_PRICE1);

int isCrossed = Crossed(Open[ 0 ],Bid,SellLine,BuyLine); //говорит о пересечении баром линии
OrderOpenFunction(isCrossed);



//----
   return ( 0 );
  }
//+------------------------------------------------------------------+


bool New()
{
   static datetime lastbar = 0 ;
   datetime curbar = Time[ 0 ];
   //Print("lastbar = ",lastbar," curbar = ",curbar);
   if (lastbar!=curbar)
   {
      lastbar = curbar;
       //Print("ypa");
       return (true);
   }
   else
       return (false);
}

int volotilnost ( bool NewBar)
{
   if (NewBar == true)
   {
       for ( int i= 0 ;i<=kolbar;i++)
      {
         sum = sum + MathAbs (High[i]-Low[i])* 1000 ;
         //Print(sum);
      }
      sumr = sum/kolbar;
       Print (sumr);
       return (sumr);
   }   
}

void Hfr( bool NewBar, int volot)
{
   if (NewBar == true)
   {
       if (volot > kolbarv)
      {
         if ( iHigh ( Symbol (),TF, 5 )< iHigh ( Symbol (),TF, 4 ))
         {
             if ( iHigh ( Symbol (),TF, 4 )< iHigh ( Symbol (),TF, 3 ))
            {
               if ( iHigh ( Symbol (),TF, 2 )< iHigh ( Symbol (),TF, 3 ))
               {
                   if ( iHigh ( Symbol (),TF, 1 )< iHigh ( Symbol (),TF, 2 ))
                  {
                     ObjectDelete ( "upline" );
                     ObjectCreate ( "upline" , OBJ_HLINE , 0 , 0 ,( iHigh ( Symbol (),TF, 3 )));
                     TimeBarH = iTime ( Symbol (),TF, 3 );
                  }
               }
            }
         }
      }   
   }   
}
         

void Lfr( bool NewBar, int volot)
{
   if (NewBar == true)
   {
       if (volot > kolbarv)
      {
         if ( iLow ( Symbol (),TF, 5 )> iLow ( Symbol (),TF, 4 ))
         {
             if ( iLow ( Symbol (),TF, 4 )> iLow ( Symbol (),TF, 3 ))
            {
               if ( iLow ( Symbol (),TF, 2 )> iLow ( Symbol (),TF, 3 ))
               {
                   if ( iLow ( Symbol (),TF, 1 )> iLow ( Symbol (),TF, 2 ))
                  {
                     ObjectDelete ( "downline" );
                     ObjectCreate ( "downline" , OBJ_HLINE , 0 , 0 ,( iLow ( Symbol (),TF, 3 )));
                     TimeBarL = iTime ( Symbol (),TF, 3 );
                  }
               }
            }
         }
      }   
   }   
}

void OrderOpenFunction( int isCrossed)
{
   total = OrdersTotal ();
   if (total< 1 )
   {
       if (isCrossed == 1 )
      {
         OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , "Покупка" ,Magic, 0 , Green );
      }
       if (isCrossed == 2 )
      {
         OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , "Продажа" ,Magic, 0 , Red );
      }
   }   
}
Sanırım hata isCrossed'de ama tam olarak nerede olduğunu tarif edemiyorum... Kodun dağınık olmaması için kodun bir kısmını (bazı verileri dizilerde sakladığım yer) sildim, ancak gerekirse, onları da zevkle yayınlayacağım
 
İyi akşamlar! Bekleyen buylimit emri koydum, stop yok, 130 hatası yazıyor !!!! Ne olabilirdi? Yoksa yine yanlış bir şey mi yapıyorum? Lütfen bana söyle!
 

Herkese merhaba.

Söylesene , stokastiğin ana ve sinyal çizgilerinin kesiştiği gerçeğini programlı olarak nasıl tanımlayabilirim?

 

Valla bence böyle bir şey

F= iStochastic ( Symbol (), 0 , 5 , 3 , 3 , MODE_SMA , 1 ,MODE_MAIN , 0 ) ;
   SIGNAL= iStochastic ( Symbol (), 0 , 5 , 3 , 3 , MODE_SMA , 1 ,MODE_SIGNAL , 0 ) ;
   if (F==SIGNAL) {Урра!!!!; }
 

bir soru daha, program nesnenin gerçekte var olmadığı halde neden var olduğunu yazıyor (sadece monitöre bakıyorum ve nesneyi net göremiyorum)

 void DrawLines()
{
   ObjectCreate ( "line1" , OBJ_TREND , 0 ,ArrayH[ 1 ], iHigh ( Symbol (),TF, iBarShift ( Symbol (),TF,ArrayH[ 1 ])),ArrayH[ 2 ], iHigh ( Symbol (),TF, iBarShift ( Symbol (),TF,ArrayH[ 2 ])));
   Print ( GetLastError ());
}

ArrayH[1] kodunda saniye sayısını verir, iBarShift ( Symbol (),TF,ArrayH[ 1 ]) - bar numarasını verir, tüm bunlara Print() aracılığıyla baktım. Ancak GetLastError 4200 hatası veriyor - neyin ne olduğunu anlamıyorum =)

 
kolyango :

Bunu göstergeden nasıl yapacağımı anlamam gerekiyor ...

Göstergeden hiçbir şey yok