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

 
 if ((Opb== 0 ) && (MA_1_t > MA_2_t + Rastvor*Point))           // Если разница между
     {                                           // ..МА 1 и 2 большая
      Opn_B= true ;                               // Критерий откр. Buy
      Cls_S= true ;                               // Критерий закр. Sell
      Opb++;					// Открытие только одного ордера
      Ops= 0 ;
         if (VKO1>=Ask) {VP=VP*Koff;} 		// При прибыли предыдущего умножать на коэф.
         if (VKO1<Ask) {VP=VP*Koff1;}		// При убытке предыдущего умножать на коэф1.
      }
 if ((Ops== 0 ) && (MA_1_t < MA_2_t - Rastvor*Point))           // Если разница между
     {                                           // ..МА 1 и 2 большая
      Opn_S= true ;                               // Критерий откр. Sell
      Cls_B= true ;                               // Критерий закр. Buy
      Ops++;					// Открытие только одного ордера
      Opb= 0 ;
         if (VKO0<=Bid) {VP=VP*Koff;} 		// При прибыли предыдущего умножать на коэф
         if (VKO0>Bid) {VP=VP*Koff1;}		// При убытке предыдущего умножать на коэф1
      }
      
if ((Opn_S== true )||(Opn_B== true ))      		// Если есть сигнал на открытие ордера
      {						// Вычисляем объем умножая на VP
       if (AccountBalance()< 50000 ) Vol=Opn_Lots*VP;
       if (AccountBalance()> 50000 ) Vol=2*Opn_Lots*VP;
      }
Hatanın nerede olduğunu bulamıyorum, lütfen bana yardım edin. "Lts=1.#INF satın almak için yeterli para yok" diyor
 

Ve depozitonun yeterli olup olmadığını kontrol edin? https://docs.mql4.com/en/constants/marketinfo

Ve egzozdaki partiyi kontrol et?

 

Bütün sorun bu... Parti sayısı sonsuza kadar büyüyor, yani. hacimdeki artış döngüye girer ve kod bir kerelik bir artış gösterir ...

açıklığa kavuşturmak için takip ettikten sonra, aşağıya bakın. ve bu nedenle Sat ile aynı

 if (Total== 0 && Opn_B==true)         // Открытых орд. нет  
            {                                   // критерий откр. Buy
             RefreshRates ();                     // Обновление данных
                                  
            Min_Lot= MarketInfo (Symb,MODE_MINLOT);   // Миним. колич. лотов 
            Free   = AccountFreeMargin ();           // Свободн средства
            One_Lot= MarketInfo (Symb,MODE_MARGINREQUIRED); // Стоимость 1 лота
            Step   = MarketInfo (Symb,MODE_LOTSTEP); // Шаг изменен размера
            Lts= MathFloor (Vol);                     // Для открытия 
             Alert ( "Lts " , Lts);
             if (Lts < Min_Lot) Lts=Min_Lot;         // Не меньше минимальн
             if (Lts*One_Lot < Free) Alert ( " Не хватает денег на " , Lts, " лотов" ); // Лот дороже свободн.
            
            SL=Ask-StopLoss_Open* Point ;             // Вычисление SL откр.
            TP=Ask+TakeProfit_Open* Point ;           // Вычисление TP откр.
             Alert ( "Попытка открыть Buy. Ожидание ответа.." );
            Ticket= OrderSend (Symb,OP_BUY,Lts,Ask, 2 ,SL,TP); //Открытие Buy
             if (Ticket > 0 )                         // Получилось :)
                {
                 Alert ( "Открыт ордер Buy " ,Ticket);
                VKO0=Ask; Opn_B =false; KO++;
                 Alert ( "Цена открытия =" , VKO0);
                }
             
            
             if (Fun_Error( GetLastError ())== 1 )   // Обработка ошибок
             continue ;                           // Повторная попытка
                                         
            }
 
             continue ;                           // Повторная попытка

Bu sözde "tek kullanımlık" mı?

cap, belli ki bir döngü var.

 
sergeev, görünüşe göre sen kendin çok akıllı değilsin .. bu, açarken bir hata meydana gelirse ve parti sayısını arttırmamak için bir döngüdür.
 

Merhaba!

Bu soruya bir cevap bulamıyorum:

bekleyen bir emir doldurulursa, türü hala bekleyen bir emir türü olarak mı kalıyor yoksa OP_BUY veya OP_SELL olarak mı değişiyor?

 
oDin48 :

Bütün sorun bu... Parti sayısı sonsuza kadar büyüyor, yani. hacimdeki artış döngüye girer ve kod bir kerelik artışla sonuçlanır ...

açıklığa kavuşturmak için takip ettikten sonra, aşağıya bakın. ve bu nedenle Sat ile aynı

Denemek
 if (Fun_Error( GetLastError ())== 0 )   // Нет ошибки
break ; 
Bir hata varsa, yeni bir onay işaretiyle tekrar bir pozisyon açmayı deneyecektir. Bu arada, if'de && (ve) operatörünü kullanmamanın istendiğini bu forumda (s. 90-91) bana açıkladılar.
 
gogent :

bekleyen bir emir doldurulursa, türü hala bekleyen bir emir türü olarak mı kalıyor yoksa OP_BUY veya OP_SELL olarak mı değişiyor?

değişir tabii.
 

Puanların para birimine nasıl çevrileceğini bilen var mı?

onlar. kar para birimi cinsinden ise, 50 puanı bu birimlere dönüştürmeniz gerekir.

 

paladin80, sorun sipariş açmıyor... gayet iyi çalışıyor... 05/01/12 19:15 tarihli yazıdan hangi değişkenlerin daha fazla kullanıldığını netleştirmek için bu kısmı atladım...

sorun şudur (aşağıya bakınız), bu bir kerelik bir uygulamadır, ancak bir nedenden dolayı Vol sonsuza kadar artar, bu nedenle Lts sonsuza kadar artar ... bu net değil ... lütfen söz konusu gönderiye bakın ve söyleyin yanlış olan ne...

 if ((Opn_S== true )||(Opn_B== true ))               // Если есть сигнал на открытие ордера
      {                                         // Вычисляем объем умножая на VP
       if (AccountBalance()< 50000 ) Vol=Opn_Lots*VP;
       if (AccountBalance()> 50000 ) Vol= 2 *Opn_Lots*VP;
      }