[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 867

 

Sevgili uzmanlar. Programlamayı öğreniyorum. İlk Uzman Danışmanımı yazdım, ancak bir anlaşma açıyor ve daha fazla işlem yapmıyor. Günlük bir hata yazmıyor. Yardımınıza ihtiyaçım var!

 //+------------------------------------------------------------------+
//|                                                Monetny dvor1.mq4 |
//|                                                            fanat |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "fanat"
#property link       "http://www.metaquotes.net"

extern double Lot= 0.1 ;           //Рабочий лот
extern double TakeProfit= 149 ;     //
extern double StopLoss= 275 ;       //          
extern int Total= 1 ;             //Колличество ордеров   
//+------------------------------------------------------------
int start()
{ //1
if (TakeProfit< 10 )
{ //2 
   Alert ( "Ошибка,TakeProfit слишком близко" );
   return ;
} //2
     
if (StopLoss< 10 )
{ //2
   Alert ( "Ошибка,StopLoss слишком близко" );
   return ;
} //2

if (Total< 1 )
{ //2
   Alert ( "Ошибка, неизвестно колличество ордеров" );
   return ;
} //2
bool Buy=false;
bool Sell=false;
bool BuyClose=false;
bool SellClose=false;                                                                             
if (iHigh( NULL , PERIOD_M15 , 2 )<iClose( NULL , PERIOD_M15 , 1 ))Buy=true;
if (iLow( NULL , PERIOD_M15 , 2 )>iClose( NULL , PERIOD_M15 , 1 ))Sell=true;
if (iClose( NULL , PERIOD_M15 , 2 )>iClose( NULL , PERIOD_M15 , 1 ))BuyClose=true;
if (iClose( NULL , PERIOD_M15 , 2 )<iClose( NULL , PERIOD_M15 , 1 ))SellClose=true;
if (Buy==false&&Sell==false&&BuyClose==false&&SellClose==false) return ;
int err;                                                 //
int ticket;                                               //
int Order_Count[ 6 ];                                       //
int OP=- 1 ;                                               //
ArrayInitialize (Order_Count, 0 );                           //
                                                           //Блок учета ордеров
for ( int i= 1 ; i<= OrdersTotal (); i++)                       //
{ //2                                                     //
   if ( OrderSelect (i- 1 , SELECT_BY_POS)==true)               // 
  Order_Count[OrderType()]++;                             //
   if (OP!=- 1 ) return (Order_Count[OP]);                     //                         
} //2
   if ( OrderSelect (ticket,SELECT_BY_TICKET))                 //Закрытие ордеров Sell
{ //2                                                     // 
   if ((OrderType()== 1 )&&(Buy==true||SellClose==true))       //  
  { //3                                                    //
  OrderClose(ticket,Lot,Ask, 4 );                           //
  err= GetLastError ();                                     //Обработка ошибок 
   if (err== 0 )                                               //
   return ;                                                 //  
   else                                                      //
  { //4                                                    //
   Sleep ( 1000 );                                             //
   Alert (err);                                             //
  } //4                                    
  } //3
} //2 
   if ( OrderSelect (ticket,SELECT_BY_TICKET))                 //Закрытие ордеров Buy
{ //2                                                     //
   if ((OrderType()== 0 )&&(Sell==true||BuyClose==true))       // 
  { //3                                                    //  
  OrderClose(ticket,Lot,Bid, 4 );                           // 
  err= GetLastError ();                                     //Обработка ошибок
   if (err== 0 )                                               //
   return ;                                                 //
   else                                                      //
  { //4                                                    //
   Sleep ( 1000 );                                             //
   Alert (err);                                             //
  } //4
  } //3
} //2 
if (Order_Count[OP_BUY]>=Total&&Order_Count[OP_SELL]>=Total) return ;                  
                                                                                      
if (Order_Count[OP_BUY]<Total&&Order_Count[OP_SELL]== 0 &&Buy==true)                     //Открытие ордеров Buy
{ //2                                                                                 //
   OrderSend ( Symbol (), OP_BUY, Lot, Ask, 4 , Ask-StopLoss* Point , Ask+TakeProfit* Point ); // 
  err= GetLastError ();                                                                 //Обработка ошибок
   if (err== 0 )                                                                           //
   return ;                                                                             //
   else                                                                                  //
  { //3                                                                                // 
   Sleep ( 1000 );                                                                         //
   Alert (err);                                                                         //
  } //3
} //2         
           
if (Order_Count[OP_SELL]<Total&&Order_Count[OP_BUY]== 0 &&Sell==true)                   //Открытие ордеров Sell 
{ //2                                                                                 //
   OrderSend ( Symbol (), OP_SELL, Lot, Bid, 4 , Bid+StopLoss* Point , Bid-TakeProfit* Point ); //
  err= GetLastError ();                                                                 //Обработка ошибок
   if (err== 0 )                                                                           //
   return ;                                                                             //
   else                                                                                  //
  { //3                                                                                //
   Sleep ( 1000 );                                                                         //
   Alert (err);                                                                         //
  } //3
} //2

return ;
} //1
 

Ticareti yasaklayan koşulu nasıl kodlayacağımı söyle

Örneğin: iStochastic>80 ise, nottreid (işlem yapmak yasaktır (veya pozisyon açmak yasaktır))?

 
fanat :

Sevgili uzmanlar. Programlamayı öğreniyorum. İlk Uzman Danışmanımı yazdım, ancak bir anlaşma açıyor ve daha fazla işlem yapmıyor. Günlük bir hata yazmıyor. Yardımınıza ihtiyaçım var!


Cehennem karışımı, ama işe yarıyor (test cihazında)

 
Vinin :


Cehennem karışımı, ama işe yarıyor (test cihazında)


Anlaşma açma koşullarının aptalca olduğunu anlıyorum.
 
Vinin :


Cehennem karışımı, ama işe yarıyor (test cihazında)


Yapı 226. Test cihazında benim için bile çalışmıyor. Nedenini söyler misin?
 
fanat :

Yapı 226. Test cihazında benim için bile çalışmıyor. Nedenini söyler misin?

Neden işinize yaramıyor bilmiyorum. çalışma kodu
 
fanat :

Yapı 226. Test cihazında benim için bile çalışmıyor. Nedenini söyler misin?

Terminali aynı Build 226'dan başka bir yere indirin.

 
Vinin :

Neden işinize yaramıyor bilmiyorum. çalışma kodu

Anladım. Teşekkür ederim. MT'yi yeniden yüklemeyi deneyeceğim.
 

Sevgili uzmanlar. Kodu bu sabah gönderdim. Danışmanın kendisi tarafından anlaşmaları kapatmak için koşullar vardır. Ancak işlemleri münhasıran TP veya SL ile kapatır. Ve eğer TP ve SL 900 bahis yaparsa, o zaman sadece bir fırsat açar ve o kadar. Lütfen yardım et.

 
fanat :

Sevgili uzmanlar. Kodu bu sabah gönderdim. Danışmanın kendisi tarafından anlaşmaları kapatmak için koşullar vardır. Ancak işlemleri münhasıran TP veya SL ile kapatır. Ve eğer TP ve SL 900 bahis yaparsa, o zaman sadece bir fırsat açar ve o kadar. Lütfen yardım et.


Ve bilet her zaman 0'a eşitse başka nasıl olabilir. Önce bir şeye atanmalıdır.

örneğin

   int ticket;        

   for ( int i= 0 i< OrdersTotal (); i++)                      
       if ( OrderSelect (i, SELECT_BY_POS))
         ticket=OrderTicket();
Neden: