Burada sorun ne? - sayfa 5

 
sss2019 :


Vay canına, teşekkürler, bence bu yol daha evrensel.

Bu arada, siparişin açıldığını danışmana nasıl bildireceğim, OrderSend, anladığım kadarıyla sadece sipariş biletini iletir. Belki OrderSelect kullanılarak uygulanabilir, işe yarar mı?


Başlatma bloğundan önce, sipariş biletini içerecek bir değişken tanımlıyoruz. Örneğin:

int bileti;

start() fonksiyonunda OrderSend() fonksiyonunu çağırmadan önce şunu yazıyoruz:

biletler=-1;

OrderSend() işlevi sipariş biletini döndürdüğü için Ticket değişkeninin sıfırdan büyük olup olmadığını kontrol ederiz, ardından sipariş verilmiştir. Aksi takdirde, sipariş yoktur - OrderSend yardımına bakın - sipariş verilemezse, işlevin bir onay işareti değil, = (-1) değerini döndüreceğini söylüyor. Bir sonraki tıklamada, değişken ilk olarak = -1 değeri ile başlatıldığından ve herhangi bir sipariş verilmediğinden, değişken kodun sonuna kadar negatif kalacaktır. Ve böylece yeni bir düzen ortaya çıkana kadar.

 
Lütfen bana bir örnekle gösterin, yoksa benim için oldukça dar.
 
sss2019 :
Lütfen bana bir örnekle gösterin, yoksa benim için oldukça dar.
 #property copyright ""
#property link       ""

int Ticket;
//+------------------------------------------------------------------+
//|                  Блок инициализации                              |
//+------------------------------------------------------------------+
int init(){
         return ( 0 );
}
//+------------------------------------------------------------------+
//|                  Блок деинициализации                            |
//+------------------------------------------------------------------+
int deinit(){
         return ( 0 );
}
//+------------------------------------------------------------------+
//|                  Старт работы советника                          |
//+------------------------------------------------------------------+
int start(){
        Ticket=(- 1 );
        
         if (если есть торговый сигнал){
                Ticket= OrderSend ();
        }
         if (Ticket> 0 ){ // тикет более нуля - ордер встал
                 // выполняем какие-то действия
        }
         return ( 0 );
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+
 

Neden Ticket=(-1) değişkeninin değeri; parantez içinde?

Ne tür bir saçmalık çıktı, sipariş açık, ancak bilet hala -1'e eşit.

 //+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

extern int MaFastPeriod = 30 ;
extern int MaSlowPeriod = 90 ;
extern int StopLoss = 25 ;
extern int TakeProfit = 50 ;

int Ticket;
int init()
  {

  }



int deinit()
  {

  }

int start()
  {
  Ticket=(- 1 );
   double MyPoint = Point ;
   if ( Digits == 3 || Digits == 5 )
      {
      MyPoint = Point * 10 ;
      }
      
double MaFast0 = iMA ( Symbol (), 0 ,MaFastPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
double MaSlow0 = iMA ( Symbol (), 0 ,MaSlowPeriod, 0 , MODE_EMA , PRICE_CLOSE , 0 );
   
   if ( OrdersTotal () == 0 && MaFast0 > MaSlow0 && Ticket==(- 1 ))
      {
      Ticket= OrderSend ( Symbol (), 0 , 0.1 ,Ask, 30 ,Ask-StopLoss*MyPoint,Ask+TakeProfit*MyPoint, "CommentA" , 0 , 0 , Green );
       return (Ticket);
      }
   Alert ( "Ticket = " ,Ticket); 
   return ( 0 );
  }
 
Neden yazıyorsun ki program daha ileri gitmesin ve uyarı seni göstermeyecek
 return (Ticket);?
 
Görünen o ki, uyarı penceresi sadece bir pozisyon açmak için herhangi bir sinyal olmadığında açılacak ve kesinlikle -1 gösterecek.
 
Yani emir, Bilet değişkenine numarasını atadıktan sonra, iadeyi kullanarak göstermenize gerek yok, değişken bir sonraki tıklamada daha fazla silinmeyecek mi?
 

Söyle bana, aynı anda birkaç sipariş açmak mümkün mü? Örneğin bunun gibi

 if (условие выполнено)
{
OrderSend ()
OrderSend ()
OrderSend ()
}
 
sss2019 :

Söyle bana, aynı anda birkaç sipariş açmak mümkün mü? Örneğin bunun gibi

Spesifik olarak, bu çalışmayabilir, ilk istek sunucu tarafından işlenecek ve sonraki istekler için bir hata olacak, ticaret akışı meşgul. Hata işleme ile siparişinizi kullanmak daha iyidir.
 
sss2019 :

Söyle bana, aynı anda birkaç sipariş açmak mümkün mü? Örneğin bunun gibi


Aynı zamanda, yapamazsınız.

Sadece sırayla.