Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 559

 
akarustam :

İşte Expert Advisor programını MT5'te test etmenin mucizeleri (bkz. resim dosyası)... Negatif bakiye ile pozitif eşitlik olabilir mi? bakiye ne zaman negatif olur? Tüccar Halkına dönmeden önce fikrini çok değiştirdi ve henüz düşünmedi ... Uyuma zamanının geldiğini hissediyorum)

Açık kaynak ve set ile ilgilenen varsa lütfen bilgilendirsin. - Tabiki yapacağım. Riskten korunma ile MT5'te ustalaşmaya başladım ve işte, mucizeler)

Mucize yok. Büyük bir artıya sahip açık pozisyonlar var ve bakiyenin büyüklüğünden daha büyük bir zarara sahip kapalı bir pozisyon var. Boşalma yok çünkü açık pozisyonları sürdürmek için yeterli fon var.
 
Artyom Trishkin :
Mucize yok. Büyük bir artıya sahip açık pozisyonlar var ve bakiyenin büyüklüğünden daha büyük bir zarara sahip kapalı bir pozisyon var. Boşalma yok çünkü açık pozisyonları sürdürmek için yeterli fon var.
Her şey çok basit... TEŞEKKÜRLER!
 

Lütfen bana hatamın ne olduğunu söyle.

for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);

OpenSellTime dizisindeki tarih yazdırılmaz ve ifadenin ikinci kısmı olan PriceOpenSell yazdırılmaz.

Ve %G ve %d gibi printf komutları hakkında hiçbir şey bulamıyorum.

 

Hepinize iyi günler!)

Programlamada böyle bir çaydanlık sorusu ...

Yeni bir yapı için bir danışman derlemeye çalışıyorum, derleyici birçok farklı hata veriyor...

İşte onlardan biri

if(karşıtdelete){ sil( OP_SELLSTOP); sil( OP_SELLLIMIT);}

Bu kod parçasında kırmızı ile işaretlenmiş 2 hata var, '(' - nesne işaretçisi bekleniyor

Hatanın özü hakkında biraz okuduktan sonra, adın rezerve edildiğini ve değiştirilmesi gerektiğini fark ettim...

Ve soru, neyin değiştirileceğidir?

 
Anton Razmyslov :

Hepinize iyi günler!)

Programlamada böyle bir çaydanlık sorusu ...

Yeni bir yapı için bir danışman derlemeye çalışıyorum, derleyici birçok farklı hata veriyor...

İşte onlardan biri

if(karşıtdelete){ sil( OP_SELLSTOP); sil( OP_SELLLIMIT);}

Bu kod parçasında kırmızı ile işaretlenmiş 2 hata var, '(' - nesne işaretçisi bekleniyor

Hatanın özü hakkında biraz okuduktan sonra, adın rezerve edildiğini ve değiştirilmesi gerektiğini fark ettim...

Ve soru, neyin değiştirileceğidir?

Aklınıza ne gelirse. Örneğin _delete veya delete_1294_765_1912 veya sadece Napolyon
 

kodda bu satır var

Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);

Bu metni neden çıktıda alıyorum:

OpenSellTime - 2015.12.01 11:15

nerede ";" ve ikinci kısım " FiyatOpenSell" mi?

 
-Aleks- :

kodda bu satır var

Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);

Bu metni neden çıktıda alıyorum:

OpenSellTime - 2015.12.01 11:15

nerede ";" ve ikinci kısım " FiyatOpenSell" mi?

kaldırıldı ";" - kazanıldı.

printf ile ilgili soru devam ediyor ...

 

Zıt bir pozisyonu kapatmak için nasıl istek gönderilir?

Eskisi gibi kapatırsanız tam tersi verniklenir))

Her şeyi denedim hala hata veriyor 2016.04.15 13:17:24 çekirdek 1 2016.03.29 09:00:00 #64 pozisyonu kapatılamadı, #0 pozisyonuna göre 0,81 EURUSD satın alındı [Geçersiz istek]

Hangi alanlar doldurulmalı, hangileri doldurulmamalı? Bir kısa pozisyonun açık veya uzun olmasının önemli olmadığını anlıyorum.

 //+------------------------------------------------------------------+
//| Закрытие  позиции по типу                                        |
//+------------------------------------------------------------------+
void PositionClose( double lot, int P_type, long id)
  {
Print ( "Вход в функцию Закрытие  позиции по типу !" );
     ZeroMemory (mrequest); ZeroMemory (mresult);             // обнуляем значения mrequest, mresult

   //--- Получить текущее значение котировки в структуру типа MqlTick
   if (! SymbolInfoTick ( _Symbol ,latest_price))
     {
       Alert ( "Ошибка получения последних котировок - ошибка:" , GetLastError (), "!!" );
       return ;
     }            
//--- формируем торговый запрос
      mrequest.action = TRADE_ACTION_CLOSE_BY;                                               // закрыть позицию встречной
      mrequest.order = id; 
//      mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
//      mrequest.price =  NormalizeDouble(latest_price.bid,_Digits);                      // последняя цена ask
//    mrequest.sl = 0;               // Stop Loss
//     mrequest.tp = 0;               // Take Profit
      mrequest.symbol = _Symbol ;                         // символ
      mrequest.volume = lot;                             // количество лотов для торговли
 //     mrequest.magic = MAGIC;                               // Magic Number
      
//     if (P_type == 0) mrequest.type = ORDER_TYPE_SELL; // проверяем тип позиции
//     if (P_type == 1) mrequest.type = ORDER_TYPE_BUY;     
      mrequest.type = ORDER_TYPE_CLOSE_BY;
      mrequest.type_filling = ORDER_FILLING_FOK ;         // тип исполнения ордера - все или ничего
      mrequest.deviation= 10 ;                             // проскальзывание от текущей цены
                                        
             if ( OrderSend (mrequest,mresult)> 0 )             // если значение отосланного ордера не ноль, то 
                  {   if (mresult.retcode== 10009 || mresult.retcode== 10008 )
                     Print ( " позиция  закрыта !" );
                  } else {
                     Print (ResultRetcodeDescription(mresult.retcode));
                     return ;
                         }
  }
 

Merhaba! Test cihazı sorusu.

Çoklu para birimi Uzman Danışmanını test ediyorum ve işlem gören tüm döviz çiftleri için görselleştiricideki tüm pencereleri görmek istiyorum.

Görselleştirici yardımı, görselleştiricinin ana menüsünün "Görünüm" bölümünde, görünüşe göre yeni grafikler açabileceğiniz belirli bir "Grafik" komutu hakkında bilgi verir. Ama nedense "Grafik" komutuna hiç sahip değilim ve buna bağlı olarak ek çiftler için çizelgeleri açamıyorum . Burada sorun nedir?

 
Aleksandr Prishenko :

Zıt bir pozisyonu kapatmak için nasıl istek gönderilir?

Eskisi gibi kapatırsanız tam tersi verniklenir))

Her şeyi denedim hala hata veriyor 2016.04.15 13:17:24 çekirdek 1 2016.03.29 09:00:00 #64 pozisyonu kapatılamadı, #0 pozisyonuna göre 0,81 EURUSD satın alındı [Geçersiz istek]

Hangi alanlar doldurulmalı, hangileri doldurulmamalı? Bir kısa pozisyonun açık veya uzun olmasının önemli olmadığını anlıyorum.

Minimum kod kullanın - standart kitaplığı kullanın:

 //+------------------------------------------------------------------+
//|                                                       TestEA.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"

#include <Trade\Trade.mqh>

CTrade my_trade;
ulong     result_deal_0  = 0 ;
ulong     result_deal_1  = 0 ;
bool      first_start    = false ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   first_start= false ;
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (!first_start)
     {
      my_trade.Sell( 0.01 );
      result_deal_0=my_trade.ResultDeal();
       Sleep ( 1000 );

      my_trade.Buy( 0.02 );
      result_deal_1=my_trade.ResultDeal();
       Sleep ( 1000 );

       if (result_deal_0!= 0 && result_deal_1!= 0 )
         PositionCloseBy(result_deal_0,result_deal_1);

      first_start= true ;
     }
  }
//+------------------------------------------------------------------+
//| Position Close By                                                |
//+------------------------------------------------------------------+
void PositionCloseBy( ulong ticket, ulong ticket_by)
  {
   my_trade.PositionCloseBy(result_deal_0,result_deal_1);
  }
//+------------------------------------------------------------------+

Temsilci Günlüğü:

ES       0        09 : 12 : 21.189     Trade   2016.04 . 14 00 : 00 : 30    instant sell 0.01 EURUSD at 1.12728 ( 1.12728 / 1.12736 / 1.12728 )
IL       0        09 : 12 : 21.189     Trades   2016.04 . 14 00 : 00 : 30    deal # 2 sell 0.01 EURUSD at 1.12728 done (based on order # 2 )
OP       0        09 : 12 : 21.189     Trade   2016.04 . 14 00 : 00 : 30    deal performed [ # 2 sell 0.01 EURUSD at 1.12728 ]
NF       0        09 : 12 : 21.189     Trade   2016.04 . 14 00 : 00 : 30    order performed sell 0.01 at 1.12728 [ # 2 sell 0.01 EURUSD at 1.12728 ]
GJ       0        09 : 12 : 21.192     TestEA (EURUSD,H1)       2016.04 . 14 00 : 00 : 30    CTrade:: OrderSend : instant sell 0.01 EURUSD at 1.12728 [done at 1.12728 ]
KH       0        09 : 12 : 21.192     Trade   2016.04 . 14 00 : 00 : 31    instant buy 0.02 EURUSD at 1.12736 ( 1.12728 / 1.12736 / 1.12728 )
OD       0        09 : 12 : 21.192     Trades   2016.04 . 14 00 : 00 : 31    deal # 3 buy 0.02 EURUSD at 1.12736 done (based on order # 3 )
GI       0        09 : 12 : 21.193     Trade   2016.04 . 14 00 : 00 : 31    deal performed [ # 3 buy 0.02 EURUSD at 1.12736 ]
LM       0        09 : 12 : 21.193     Trade   2016.04 . 14 00 : 00 : 31    order performed buy 0.02 at 1.12736 [ # 3 buy 0.02 EURUSD at 1.12736 ]
NS       0        09 : 12 : 21.193     TestEA (EURUSD,H1)       2016.04 . 14 00 : 00 : 31    CTrade:: OrderSend : instant buy 0.02 EURUSD at 1.12736 [done at 1.12736 ]
OP       0        09 : 12 : 21.193     TestEA (EURUSD,H1)       2016.04 . 14 00 : 00 : 32    Вход в функцию Закрытие  позиции по типу !
GI       0        09 : 12 : 21.193     Trade   2016.04 . 14 00 : 00 : 32    close position # 2 sell 0.01 EURUSD by position # 3 buy 0.02 EURUSD ( 1.12728 / 1.12736 / 1.12728 )
OM       0        09 : 12 : 21.193     Trades   2016.04 . 14 00 : 00 : 32    deal # 4 buy 0.01 EURUSD at 1.12736 done (based on order # 4 )
RK       0        09 : 12 : 21.193     Trades   2016.04 . 14 00 : 00 : 32    deal # 5 sell 0.01 EURUSD at 1.12728 done (based on order # 4 )
EF       0        09 : 12 : 21.193     TestEA (EURUSD,H1)       2016.04 . 14 00 : 00 : 32    CTrade:: OrderSend : unknown action 10 [done]
EI       0        09 : 12 : 21.423     Trade   2016.04 . 14 23 : 59 : 59    position closed due end of test at 1.12663 [ # 3 buy 0.01 EURUSD 1.12736 ]
JG       0        09 : 12 : 21.423     Trades   2016.04 . 14 23 : 59 : 59    deal # 6 sell 0.01 EURUSD at 1.12663 done (based on order # 5 )
HN       0        09 : 12 : 21.423     Trade   2016.04 . 14 23 : 59 : 59    deal performed [ # 6 sell 0.01 EURUSD at 1.12663 ]
IS       0        09 : 12 : 21.423     Trade   2016.04 . 14 23 : 59 : 59    order performed sell 0.01 at 1.12663 [ # 5 sell 0.01 EURUSD at 1.12663 ]
Neden: