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

 
Oh harika, herkese teşekkürler!
 
Kahretsin, orada her şey gerçekten çok zor mu, (((küçük bir danışman gibi.
 

Toko'yu çıkarmadım, hala çalışmıyor ((((

Sadece fiyat tek yönde giderse açılır ve fiyat tersine dönerse açılmaz ((

Dosyalar:
trudnyaga.mq4  5 kb
 
Frostr :
Açık pozisyonlar için bir koşul yazmaya yardımcı olun.

Planlanan prense göre işlemlerin açılması için ek bir koşul yazamam.

TP veya SL'de herhangi bir pozisyonu kapattıktan sonra, ters pozisyonla tekrar açması gerekir.

Örnek: Bir Satış pozisyonu kapalıysa, diyelim ki SL tarafından, yine onunla birlikte bir Satış pozisyonu açtı ve Al

İşte EA'dan 2 koşul:

satın alma koşulu

eğer (SATIN AL)
{
if (kar al!=0) TP = NormalizeDouble(Sor + kar al*Puan,Rakamlar); başkaTP=0;
if (stoploss!=0) SL = NormalizeDouble(Sor - stoploss*Nokta,Rakamlar); başkaSL=0;
if(NumberOfPositions(Symbol(),OP_BUY,Magic)<MaxOrders)OPENORDER("Satın Al");
}

satış koşulu

eğer (SAT)
{
if (kar al!=0) TP = NormalizeDouble(Teklif - kar al*Puan,Rakamlar); başkaTP=0;
if (stoploss!=0) SL = NormalizeDouble(Teklif + stoploss*Puan,Rakamlar); başkaSL=0;
if(NumberOfPositions(Symbol(),OP_SELL,Magic)<MaxOrders)OPENORDER("Sat");
}

Buna kim dahil, ek bir koşul yazmaya yardımcı olun

Üzgünüz, ancak ekteki dosyalarda kaynak yok, derlenmiş dosya var. göremezsin. .mq4 uzantılı dosyayı yükleyin
 
düzeltilmiş gibi görünüyor
Dosyalar:
 
öyle değil)) işte bir tane. bu daha net
Dosyalar:
sellbuy_2.mq4  3 kb
 
ikinci danışmana bak belki fikir verir..... Bugün bütün gece beste yaptım :)
 
Frostr :
ikinci danışmana bak belki fikir verir..... Bugün bütün gece beste yaptım :)

Ben böyle aldım. denemek
 //+------------------------------------------------------------------+
extern int     stoploss   = 0 ,           // уровень выставления SL, если 0, то SL не выставляется
              takeprofit = 0 ,           // уровень выставления TP, если 0, то TP не выставляется
              Magic      = 123456 ;     // уникальный номер ордера
extern double Lot        = 0.1 ;         // объем ордера
extern int     slippage   = 3 ;           // Максимально допустимое отклонение цены для рыночных ордеров
extern int     MaxOrders  = 3 ;           // Максимально допустимое количество ордеров BUY или SELL
extern int     CycleCount = 5 ;           // количество попыток открытия ордера
//+------------------------------------------------------------------+
double SL,TP;
int     Count,Total,LastTotal;
string ord;
//+------------------------------------------------------------------+
int start()
   {
   Total=fTotal();
   if (Total==LastTotal&&LastTotal!= 0 ) return ( 0 );
   int Buy,Sell;
   if (Count== 0 )
      {
       MathSrand ( TimeLocal ()); 
       if ( NormalizeDouble ( MathMod ( MathRand (), 2 ), 0 )== 0 )ord= "Buy" ; else ord= "Sell" ;
   } 
   if (ord== "Buy" )OrdCount( "Buy" );
   if (ord== "Sell" )OrdCount( "Sell" );
   if (Count>=MaxOrders) return ( 0 );
   if (ord== "Buy" )
      {
       if (takeprofit!= 0 )TP= NormalizeDouble (Ask+takeprofit* Point , Digits ); else TP= 0 ;
       if (stoploss!= 0 )SL= NormalizeDouble (Ask-stoploss* Point , Digits ); else SL= 0 ;
      OPENORDER( "Buy" );
       if (takeprofit!= 0 )TP= NormalizeDouble (Bid-takeprofit* Point , Digits ); else TP= 0 ;
       if (stoploss!= 0 )SL= NormalizeDouble (Bid+stoploss* Point , Digits ); else SL= 0 ;
      OPENORDER( "Sell" );
   }
   if (ord== "Sell" )
      {
       if (takeprofit!= 0 )TP= NormalizeDouble (Bid-takeprofit* Point , Digits ); else TP= 0 ;
       if (stoploss!= 0 )SL= NormalizeDouble (Bid+stoploss* Point , Digits ); else SL= 0 ;
      OPENORDER( "Sell" );
       if (takeprofit!= 0 )TP= NormalizeDouble (Ask+takeprofit* Point , Digits ); else TP= 0 ;
       if (stoploss!= 0 )SL= NormalizeDouble (Ask-stoploss* Point , Digits ); else SL= 0 ;
      OPENORDER( "Buy" );
   }
   LastTotal=fTotal();
   return ( 0 );
}
//+------------------------------------------------------------------+
void OPENORDER( string ord)
   {
   int error,err;
   while ( true )
      { 
      error=- 1 ;
       if (ord== "Buy" )error= OrderSend ( Symbol (),OP_BUY, Lot, NormalizeDouble (Ask, Digits ),slippage,SL,TP, "BUY" ,Magic, 0 ,Blue);
       if (ord== "Sell" )error= OrderSend ( Symbol (),OP_SELL,Lot, NormalizeDouble (Bid, Digits ),slippage,SL,TP, "SELL" ,Magic, 0 ,Red);
       if (error==- 1 ) //неудачная покупка OK
         { 
         ShowERROR();err++; Sleep ( 2000 );RefreshRates();
      }
       if (err>=CycleCount) break ;
   }
   return ;
} 
//+------------------------------------------------------------------+
void ShowERROR()
   {
   int err= GetLastError ();
   switch (err)
      { 
       case 1    : return ;
       case 2    : Alert ( "Нет связи с торговым сервером " , Symbol ()); return ;
       case 3    : Alert ( "Error неправильные параметры " , Symbol ()); return ;
       case 130 : Alert ( "Error близкие стопы Ticket " , Symbol ()); return ;
       case 134 : Alert ( "Недостаточно денег " , Symbol ()); return ;
       case 146 : Alert ( "Error Подсистема торговли занята " , Symbol ()); return ;
       case 129 : Alert ( "Error Неправильная цена " , Symbol ()); return ;
       case 131 : Alert ( "Error Неправильный объем " , Symbol ()); return ;
       case 4200 : Alert ( "Error Объект уже существует " , Symbol ()); return ;
       default   : Alert ( "Error " ,err, " " , Symbol ()); return ;
   }
}
//+------------------------------------------------------------------+
int fTotal()
   {
   int Tot= OrdersTotal ();
   int BuyCount= 0 ,SellCount= 0 ;
   if (Tot> 0 )
      {
       for ( int i= 0 ;i< OrdersTotal ();i++)
         {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
            {
             if (OrderSymbol()== Symbol ()&&(Magic== 0 ||OrderMagicNumber()==Magic))
               {
               switch (OrderType())
                  {
                   case OP_BUY :BuyCount++; break ;
                   case OP_SELL:SellCount++; break ;
               }
            }
         }
      }
   }
   return (BuyCount+SellCount);
}
//+------------------------------------------------------------------+
int OrdCount( string ord)
   {
   int Type;Count= 0 ;
   if (ord== "Buy" )Type=OP_BUY;
   if (ord== "Sell" )Type=OP_SELL;
   for ( int i= 0 ;i< OrdersTotal ();i++)
      {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true )
         {
         if (OrderSymbol()== Symbol ())
            {
             if (OrderType()==Type)
               {
               if (Magic== 0 ||OrderMagicNumber()==Magic)Count++;
            }
         }
      }
   }
   return (Count);
}
//+------------------------------------------------------------------+
 
benim için 500 sipariş açar ya da 1000 nasıl azaltılır?
 
Frostr :
benim için 500 sipariş açar veya 1000'i nasıl azaltır?

Kim o?