OrderSelect fonksiyon sorusu

 

boopa26 emir gönderme kodu yazabilir ancak emirleri kapatmak için emir seçme fonksiyonunu yazamaz. çevrimsiz veya çevrimsiz siparişleri kapatmak için sipariş seçme fonksiyonu yazmak istiyor. boopa26, if koşullarıyla siparişleri kapatmak için sipariş seçme işlevi yazmak istiyor ancak boopa26, siparişleri kapatmak için sipariş seçme işlevini birleştirmeyi anlamıyor


örnek satın al sipariş gönder

if(OrdersTotal()==0)OrderSend(Symbol(),OP_BUY,.1,Ask,3,0,0,NULL,9,0,clrNONE);


örnek sipariş seçin. boopa26 anlamıyor

OrderSelect( int indeksi , int seçimi , int havuzu )


int indeksi nedir?

int seçimi nedir?

int havuzu nedir?

sipariş seçimi nasıl yapılır?

 

Belgeleri okudunuz mu?

Parameters

bilet

[içinde] İkinci parametreye bağlı olarak sipariş dizini veya sipariş bileti.

seçme

[içinde] Bayrakları seçme. Aşağıdaki değerlerden herhangi biri olabilir:

SELECT_BY_POS - sipariş havuzundaki dizin,
SELECT_BY_TICKET - dizin, sipariş biletidir.

havuz=MODE_TRADES

[içinde] İsteğe bağlı sipariş havuzu dizini. Seçilen parametre SELECT_BY_POS olduğunda kullanılır. Aşağıdaki değerlerden herhangi biri olabilir:

MODE_TRADES (varsayılan)- işlem havuzundan seçilen emir (açılan ve bekleyen emirler),
MODE_HISTORY - geçmiş havuzundan seçilen sipariş (kapalı ve iptal edilen sipariş).


 
belgeleri şimdi okuyorum https://docs.mql4.com/trading/orderselect
 
gumrai dokümantasyon bağlantısını içerebilirdi. şaka yapıyorum. teşekkür ederim gumrai
 
bool   OrderSelect(
   int      index,             // index or order ticket
   int      select ,           // flag
   int      pool=MODE_TRADES   // mode
   );

boopa26 açık siparişleri kapatmak istiyor, bu yüzden boopa üçüncü parametre olarak MODE_TRADES'i seçiyor


boopa26 SELECT_BY_POS veya SELECT_BY_TICKET yapar mı? boopa26 bilmiyor

SELECT_BY_POS //index inside order pool,
SELECT_BY_TICKET //index is order ticket.
 

boopa26, MODE_TRADES'i üçüncü parametre olarak seçer

boopa26, ikinci parametre olarak SELECT_BY_POSITION'ı seçer

boopa26 ilk parametre olarak sipariş indeksini seçer


misal

 static int order_index;

if ( OrderSelect (order_index,SELECT_BY_POSITION,MODE_TRADES)== 1
 

https://docs.mql4.com/trading/orderclose

boopa26, döngüler olmadan veya döngüler olmadan, ancak açık siparişleri sipariş seçme işleviyle kapatmak için if koşullarıyla nasıl döngü yapar?

dokümantasyon siparişi kapatma, sipariş biletinin bulunmasını gerektirir, ancak boopa26, bilet değil sipariş pozisyonunu bulmak için sipariş seçimi yapar

 bool   OrderClose(
   int         ticket,       // ticket
   double      lots,         // volume
   double      price,       // close price
   int         slippage,     // slippage
   color       arrow_color   // color
   );

1. sırayı seçin

2. siparişi kapat

nasıl olduğunu bilmiyor

 
//+------------------------------------------------------------------+
//|                                               Moving Average.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright    "2005-2014, MetaQuotes Software Corp."
#property link          "http://www.mql4.com"
#property description "Moving Average sample expert advisor"

#define MAGICMA   20131111
//--- Inputs
input double Lots          = 0.1 ;
input double MaximumRisk   = 0.02 ;
input double DecreaseFactor= 3 ;
input int     MovingPeriod  = 12 ;
input int     MovingShift   = 6 ;
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders( string symbol)
  {
   int buys= 0 ,sells= 0 ;
//---
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA)
        {
         if (OrderType()==OP_BUY)  buys++;
         if (OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if (buys> 0 ) return (buys);
   else        return (-sells);
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int     orders=HistoryTotal();     // history orders total
   int     losses= 0 ;                   // number of losses orders without a break
//--- select lot size
   lot= NormalizeDouble (AccountFreeMargin()*MaximumRisk/ 1000.0 , 1 );
//--- calcuulate number of losses orders without a break
   if (DecreaseFactor> 0 )
     {
       for ( int i=orders- 1 ;i>= 0 ;i--)
        {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== false )
           {
             Print ( "Error in history!" );
             break ;
           }
         if (OrderSymbol()!= Symbol () || OrderType()>OP_SELL)
             continue ;
         //---
         if (OrderProfit()> 0 ) break ;
         if (OrderProfit()< 0 ) losses++;
        }
       if (losses> 1 )
         lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 1 );
     }
//--- return lot size
   if (lot< 0.1 ) lot= 0.1 ;
   return (lot);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int     res;
//--- go trading only for first tiks of new bar
   if (Volume[ 0 ]> 1 ) return ;
//--- get Moving Average 
   ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 );
//--- sell conditions
   if (Open[ 1 ]>ma && Close[ 1 ]<ma)
     {
      res= OrderSend ( Symbol (),OP_SELL,LotsOptimized(),Bid, 3 , 0 , 0 , "" ,MAGICMA, 0 ,Red);
       return ;
     }
//--- buy conditions
   if (Open[ 1 ]<ma && Close[ 1 ]>ma)
     {
      res= OrderSend ( Symbol (),OP_BUY,LotsOptimized(),Ask, 3 , 0 , 0 , "" ,MAGICMA, 0 ,Blue);
       return ;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if (Volume[ 0 ]> 1 ) return ;
//--- get Moving Average 
   ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 );
//---
   for ( int i= 0 ;i< OrdersTotal ();i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ;
       if (OrderMagicNumber()!=MAGICMA || OrderSymbol()!= Symbol ()) continue ;
       //--- check order type 
       if (OrderType()==OP_BUY)
        {
         if (Open[ 1 ]>ma && Close[ 1 ]<ma)
           {
             if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
           }
         break ;
        }
       if (OrderType()==OP_SELL)
        {
         if (Open[ 1 ]<ma && Close[ 1 ]>ma)
           {
             if (!OrderClose(OrderTicket(),OrderLots(),Ask, 3 ,White))
               Print ( "OrderClose error " , GetLastError ());
           }
         break ;
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick ()
  {
//--- check for history and trading
   if ( Bars < 100 || IsTradeAllowed()== false )
       return ;
//--- calculate open orders by current symbol
   if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen();
   else                                     CheckForClose();
//---
  }
//+------------------------------------------------------------------+
hareketli ortalama uzman danışman, açık siparişleri kapatmak için döngüyü kullanır
 

"Boopa26" nın aşağıdakileri yapması gerektiğini düşünüyorum:

  1. İlk olarak, "boopa26"nın önce kodlamanın temellerini öğrenmesi gerekir (C'deki gibi).
  2. O zaman "boopa26" Kitabı/ Eğiticiyi okumalı ve takip etmelidir (eski ve güncelliğini yitirmiş olsa bile).
  3. Aynı zamanda, "boopa26" Kitapta/Öğreticide bahsedilmeyen MQL4 Güncellemelerine özel dikkat göstererek tüm belgeleri okumalıdır.
  4. Ardından, "boopa26"nın, Kullanıcı Kodu Tabanındaki Göstergeler, Uzman Danışmanlar (EA'lar) ve Komut Dosyaları için birkaç kod örneğini incelemesi gerekir.
  5. Ardından "boopa26" kendi, ancak çok basit Göstergeleri yapmaya başlayabilir ve tam olarak anlayıp daha karmaşık Göstergeler oluşturabilene kadar yavaş yavaş bunların üzerine inşa edebilir.
  6. Sonra "boopa26" kendi, ancak çok basit EA'ları yapmaya başlayabilir ve tam olarak anlayana ve daha karmaşık EA'lar yapana kadar yavaş yavaş bunların üzerine inşa edebilir.

"boopa26" ayrıca çok önemli bir ders öğrenmelidir, "boopa26" gerekli tüm adımları atlamamalıdır, aksi takdirde "boopa26" herkesin zamanını boşa harcar ve "güzel bir pasta" yerine, tüm "boopa26" "yanmış kömür" dir.

 
FMIC :

"Boopa26" nın aşağıdakileri yapması gerektiğini düşünüyorum:

  1. İlk olarak, "boopa26"nın önce kodlamanın temellerini öğrenmesi gerekir (C'deki gibi).
  2. O zaman "boopa26" Kitabı/ Eğiticiyi okumalı ve takip etmelidir (eski ve güncelliğini yitirmiş olsa bile).
  3. Aynı zamanda, "boopa26" Kitapta/Öğreticide bahsedilmeyen MQL4 Güncellemelerine özel dikkat göstererek tüm belgeleri okumalıdır.
  4. Ardından, "boopa26"nın, Kullanıcı Kodu Tabanındaki Göstergeler, Uzman Danışmanlar (EA'lar) ve Komut Dosyaları için birkaç kod örneğini incelemesi gerekir.
  5. Ardından "boopa26" kendi, ancak çok basit Göstergeleri yapmaya başlayabilir ve tam olarak anlayıp daha karmaşık Göstergeler oluşturabilene kadar yavaş yavaş bunların üzerine inşa edebilir.
  6. Sonra "boopa26" kendi, ancak çok basit EA'ları yapmaya başlayabilir ve tam olarak anlayana ve daha karmaşık EA'lar yapana kadar yavaş yavaş bunların üzerine inşa edebilir.

"boopa26" ayrıca çok önemli bir ders almalıdır, "boopa26" gerekli tüm adımları atlamamalıdır, aksi takdirde "boopa26" herkesin zamanını boşa harcar ve "güzel bir pasta" yerine sahip olacağı tek şey " yanmış kömür".

1. c bilgisine ihtiyaç duymaz. mql4 farklı fonksiyonlardır

2. zaten kitap oku

3. belgeleri zaten okuyun

4. yazılı kod zaten

5. ?

6. ?

boopa26 insanların zamanını boşa harcamaz

Boopa26'ya kömürlü kek pişirmeyi öğreten FMIC öğretmeni

FMIC kömür kek sınıfı