MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1918

 
Andrey Sokolov # :

Gerçekten kendin görmüyor musun?

"Bu an nasıl boyanır?" - çok fazla 0.01 belirtildiğinde, mevcut minimumu hesaplamak gerekir.

Bu görüyorum. 0.02 yaparsanız, 0.02'lik çok siparişleri seçecektir. Önce 0,01'de, sonra 0,02'de nasıl görünmesini sağlayacağımı soruyorum.

 
Sergey Gridnev # :
2 döngüye ihtiyacınız var: ilkinde minimum hacmi buluyorsunuz, ikincisinde kapatıyorsunuz. Ve kapanış sırasında siparişlerin 1 pozisyon kaydırıldığını, bu nedenle maksimum pozisyondan 0'a geçiş yapmanız gerektiğini unutmayın.

Ve maksimumdan 0'a nasıl yapılır?

 
Rustam Bikbulatov # :

Önce 0,01'de, sonra 0,02'de nasıl görünmesini sağlayacağımı soruyorum.

2 kere nasıl diye cevap vermişsin.

 
Rustam Bikbulatov # :

Bu görüyorum. 0.02 yaparsanız, 0.02'lik çok siparişleri seçecektir. Önce 0,01'de, sonra 0,02'de nasıl görünmesini sağlayacağımı soruyorum.

İki boyutlu bir dizide toplayın, lotlar birinci boyutta, biletler ikinci boyutta. Diziyi sıralayın ve şimdilik ilk boyuttaki minimum lotu kapatın. Veya her şeyi kapatmanız gerekiyorsa, ancak lot arttıkça sona yakın ...

 
Sergey Gridnev # :
2 döngüye ihtiyacınız var: ilkinde minimum hacmi buluyorsunuz, ikincisinde kapatıyorsunuz. Ve kapanış sırasında siparişlerin 1 pozisyon kaydırıldığını, bu nedenle maksimum pozisyondan 0'a geçiş yapmanız gerektiğini unutmayın.

hayır. En erkenden en geçe.

 

Ne dediler, ben kendim biliyordum. Tamam, her zamanki gibi dürtme yönteminde ustalaşacağım.

 
Rustam Bikbulatov # :

Ne dediler, ben kendim biliyordum. Tamam, her zamanki gibi dürtme yönteminde ustalaşacağım.

 //+------------------------------------------------------------------+
//|                                                       Око_01.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        " https://www.mql5.com "
#property version    "1.00"
#property strict
#include <GrosBuch.mqh>
#property script_show_inputs

//input double Max_loss=0; //
extern int N= 6 ;           // Количество ордеров
input int SLpips= 0 ;       // Количество пунктов
//Вычисляем возможное оставшееся количество лотов при N лоссов от оставшихся свободных средств
// Buch bi;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   double PipValue = MarketInfo( NULL , MODE_TICKVALUE),
          min_lot = MarketInfo( NULL , MODE_MINLOT),
          lot_step = MarketInfo( NULL , MODE_LOTSTEP),
          Margin = MarketInfo( Symbol (), MODE_MARGINREQUIRED),
          Max_loss=N*SLpips*PipValue*min_lot,                 //Вычисляем сумму совокупного возможного лосса
          M_m= DBL_MIN ;
   double remains= AccountFreeMargin()-Max_loss;   //Значение свободных средств для открыти ордера Margin*Lots;
   while (remains>Margin*min_lot&&! IsStopped ())   //если они больше,чем необходимо для открытия 1 лота
     {
      min_lot= NormalizeDouble (min_lot+lot_step, 2 );   //добавим минлот
      M_m=Margin*min_lot;                           //получим значени св средств при вычисленном лоте и размере стопа
       // Lots*=min_lot;
       Print ( "remains = " ,remains, " Margin =" ,Margin, " PipValue =" ,PipValue, " N =" ,N, "min_lot =" ,min_lot, " Max_loss =" ,Max_loss, " M-m =" ,M_m);
     }
  }
//+------------------------------------------------------------------+
 

İyi akşamlar, sevgili uzmanlar!

Lütfen bana bir konuda yardım edin. Bir işlevin başlangıcını yazıyorum ve kodunun bir bölümünü bir komut dosyasıyla kontrol etmeye karar verdim:

 //+------------------------------------------------------------------+
//|                                                            3.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   /* Создадим запрос на сервер и получим ответ с результатом */
   MqlTradeRequest request= {};
   MqlTradeResult result= { 0 };
   /* запустим цикл для перебора всех установленных отложенных ордеров */
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       /* определим параметры установленного ордера */
       string symbol= OrderGetString ( ORDER_SYMBOL );                         // символ ордера
       int     digits=( int ) SymbolInfoInteger (symbol, SYMBOL_DIGITS );         // количество знаков после запятой
       double point= SymbolInfoDouble (symbol, SYMBOL_POINT );                 // значение одного пункта
       ulong   ticket= OrderGetTicket (i);                                   // тикет ордера
       ENUM_ORDER_TYPE type=( ENUM_ORDER_TYPE ) OrderGetInteger ( ORDER_TYPE ); // тип ордера
       double volume= OrderGetDouble ( ORDER_VOLUME_INITIAL );                 // объём ордера
       ulong   magic= OrderGetInteger ( ORDER_MAGIC );                         // MagicNumber ордера
       double price_current= OrderGetDouble ( ORDER_PRICE_CURRENT );           // текущая цена по символу ордера
       double price_order_open= OrderGetDouble ( ORDER_PRICE_OPEN );           // цена открытия указанная в ордере
       double sl= OrderGetDouble ( ORDER_SL );                                 // стоп лосс ордера
       double tp= OrderGetDouble ( ORDER_TP );                                 // тейк профит ордера
       /* выведем информацию об установленных отложенных ордерах */
       PrintFormat ( "#%I64u %s  %s  %.2f price_current: %.5f price_order_open: %.5f sl: %.5f tp: %.5f magic: %d" ,
                  ticket,symbol, EnumToString (type),volume,price_current,price_order_open,sl,tp,magic);
     }
  }
//+------------------------------------------------------------------+


Ama işte, beni biraz şaşırtan, Uzmanların katkısında basılan sonuç. Bekleyen ORDER_TYPE_BUY_STOP siparişinin sembolü yansıyor, ancak bazı nedenlerden dolayı ORDER_TYPE_SELL_STOP emri yansıtmıyor.

Ne ile bağlanabilir? Saygılarımla, Vladimir.



 
MrBrooklin # :

İyi akşamlar, sevgili uzmanlar!

Lütfen bana bir konuda yardım edin. Bir işlevin başlangıcını yazıyorum ve kodunun bir bölümünü bir komut dosyasıyla kontrol etmeye karar verdim:


Ama işte, beni biraz şaşırtan, Uzmanların katkısında basılan sonuç. Bekleyen ORDER_TYPE_BUY_STOP siparişinin sembolü yansıyor, ancak bazı nedenlerden dolayı ORDER_TYPE_SELL_STOP emri yansıtmıyor.

Ne ile bağlanabilir? Saygılarımla, Vladimir.



Bunun nedeni, bir bilet seçmemiş olmanız, ancak özelliklerini almaya çalışıyor olmanızdır.
 
Sergey Gridnev # :
Bunun nedeni, bir bilet seçmemiş olmanız, ancak özelliklerini almaya çalışıyor olmanızdır.

Cevabınız için teşekkürler Sergey! Cevabınız beni daha da şaşırttı. Nasıl yani? Komut dosyası başlatıldığında, bekleyen tüm siparişler yoklanır. Resimden, grafikte iki tane olduğu ve aynı zamanda bir biletin seçildiği ve diğerinin seçilmediği görülebilir. Pek net değil.

Biraz daha açıklayabilir misin?

Soruyu boş bir meraktan değil, kendi kendine eğitime devam etmek için soruyorum.

Saygılarımla, Vladimir.