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

 
Profitov :
Böyle bir soru ortaya çıktı, örneğin bir günde %2'lik bir kayba ulaşıldığında tüm işlemleri kapatacak bir danışman veya senaryo yazmak mümkün müdür?

olabilmek.
 
Yardım - Yeni bir dizüstü bilgisayar aldım - Windows 8 orada kurulu - Alpari'den en son güncellenen terminali indirdim - Daha önce çalıştığım göstergeleri MQL4 klasörüne yüklüyorum - göstergeler - orada görünüyorlar - ancak terminalde değiller kullanıcı arayüzünde, destek hizmeti gerçekten hiçbir şey yazmıyor - ne yapmalıyım?
 
galinka :
Yardım - Yeni bir dizüstü bilgisayar aldım - Windows 8 orada kurulu - Alpari'den en son güncellenen terminali indirdim - Daha önce çalıştığım göstergeleri MQL4 klasörüne yüklüyorum - göstergeler - orada görünüyorlar - ancak terminalde değiller kullanıcı arayüzünde, destek hizmeti gerçekten hiçbir şey yazmıyor - ne yapmalıyım?

"Dosya" sistem menüsünde yeni bir "Veri dizinini aç" öğesi vardır. Şimdi onu oraya koymalısın.
 
hayır, çalışmıyor - terminalde değiller
 

Muhtemelen nasıl yapılacağını anlamadım - program dosyaları-- alpari-açık ---- klasörler var---- MQL4-göstergeleri-- ekliyorum- görünüyor- kapat --- terminali kullanıcıda aç onlar değil

 
belki göstergelerimde bir şeyi değiştirmem gerekiyor
 

teşekkürler yardımcı oldu

 
1mql :

Son haricinin altında:
dış int kayma = 2; //piyasa pozisyonlarını kapatırken fiyat kayması

başka bir tane koy:
harici bool total_symb = doğru; //tüm çiftler için

ve satırların her biri:
if (( OrderSymbol () == Sembol ()))
ve
if ( OrderSymbol () == Sembol ())

bunu değiştirin:
if ( OrderSymbol () == Sembol () || total_symb)

teorik olarak çalışması gerekir, kontrol edin.


hayır çalışmıyor. her şey eskisi gibi. etkinleştirildiği yerde yalnızca birkaç grafiği kapatır. ve diğerlerinde 4107 kapatma hatası veriyor. Extern bool içinde değiştirilmeye çalışıldı Buy = false; // satın alma siparişlerinin yönünü sil/kapat
extern bool Sat = yanlış; //satış emirlerinin yönünü sil/kapat . üzerinde doğru . Yardım etmedi. ve örneğin, açık pozisyonu olmayan bir grafik koyarsanız, bunların hiçbiri 4107 hatası her seferinde kapanmaz.
 
Profitov :
Böyle bir soru ortaya çıktı, örneğin bir günde %2'lik bir kayba ulaşıldığında tüm işlemleri kapatacak bir danışman veya senaryo yazmak mümkün müdür?
Zaten yazılmış .
 
alsu :

Bu, Ticket'in hala eski sürümde bir yerlerde kullanıldığı anlamına gelir. Kodu temizlemem gerekiyor...

Böyle mi yaptı:

 Symb= Symbol ();                               // Название фин.инстр.
   Total= 0 ;                                     // Количество ордеров
   int order[ 7 ]; //буффер для семи ордеров
   int ord; //количество ордеров
   ArrayInitialize (order, 0 );//обнуляем количество ордеров
   for ( int i= 1 ; i<= OrdersTotal (); i++)           // Цикл перебора ордер
     {
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) // Если есть следующий
        {                                       // Анализ ордеров:
         if ( OrderSymbol ()!=Symb) continue ;       // Не наш фин. инструм
         if ( OrderType ()> 1 ){ Alert ( "Обнаружен отложенный ордер. Эксперт не работает." ); return ;}
         Total++;                               // Счётчик рыночн. орд
         if (Total> 7 ){ Alert ( "Более 7 ордеров. Эксперт не работает." ); return ;}
         Ticket= OrderTicket ();                   // Номер выбранн. орд.
         Tip   = OrderType ();                     // Тип выбранного орд.
         order  [ OrderType ()]++;                     // ПОЛУЧАЕМ КОЛИЧЕСТВО ОРДЕРОВ           
         Price = OrderOpenPrice ();               // Цена выбранн. орд.
         SL    = OrderStopLoss ();                 // SL выбранного орд.
         TP    = OrderTakeProfit ();               // TP выбранного орд.
         Lot   = OrderLots ();                     // Количество лотов
        }
     }
     ord=order  [ OrderType ()];

 while ( true )                                   // Цикл закрытия орд.
     {
       if (Tip== 0 && Cls_B== true )                 // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert ( "Попытка закрыть Buy " ,Ticket, ". Ожидание ответа.." );
         RefreshRates ();                         // Обновление данных
         Ans= OrderClose (Ticket,Lot, Bid , 2 );       // Закрытие Buy
         if (Ans== true ){ Alert ( "Закрыт ордер Buy " ,Ticket); if (ord == 0 ){ Alert ( "Закрыты все ордера " ,ord); break ;} }
         if (Fun_Error(GetLastError())== 1 )       // Обработка ошибок
             continue ;                           // Повторная попытка
         return ;                                 // Выход из start()
        }

Pozisyonlar tamamen kapatılmıştır. Doğru, hata sıfır, rıhtımlarda hata yok anlamına geliyor. Ve günlükte "Tüm siparişleri kapattı" mesajını bulamıyorum.

Kalın, değişen çizgileri vurguladı. Çalışıyor gibi görünüyor, henüz tam olarak test etmedim.

Döngülerin nasıl çalıştığını tam olarak anlamıyorum. Diyelim ki döngünün ortasında yukarıda ve aşağıda kod var. Döngünün koşulları eşleşirse, kodun çalışması yalnızca döngü içinde yürütülür ve kod satırlarının yürütülmesini engeller, döngünün altında ne var? Bu örnek göz önüne alındığında, break ifadesi döngüyü bozar mı? Aşağıdaki satırların çalışmasına izin vererek mi yoksa program hesaplamayı en baştan mı başlatıyor?

Yanlışsam düzeltin: break , bulunduğu döngüyü keser ve operatörün hesaplamasını yürütmeye devam eder, üstünde ne varsa , o zaman ikinci bir operatör olup olmadığı net değil, hesaplaması olacak mı? kesintiye uğradı mı yoksa devam mı genel olarak tüm kodu keser ve programı baştan kodu yürütmek için gönderir mi?