[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 287

 
Sorento :
2011.03.30 08:40:21 çanta USDCAD,M1: 3 4 4.00000000 ask=0.9729 teklif=0.9725


 int Ret[ 3 ];

Ret[ 0 ]= NormalizeDouble ((Ask-Bid)/ Point , 0 ); 
Print (Ret[ 0 ], " " ,(Ask-Bid)/ Point , " ask=" ,Ask, " bid=" ,Bid); 
bu nasıl çalışır
 
abolk :

bu nasıl çalışır
Teşekkür ederim!
 
Sorento :
Teşekkür ederim!


Genel olarak, MT geliştiricilerinin belgelerde bir bölüm oluşturması ve sorunu ayrıntılı olarak ve normalleştirmeyi kullanma gereğini kutsamasının zamanı geldi.

Bu durum için, belgeler aksansız yalnızca mütevazı bir örnek içerir:

 int     i = 1 / 2.0 ;   // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0

"Tip dökümü" bölümü https://docs.mql4.com/en/basis/types/casting

 
Roger :

FoxUA'ya

Emir 3 (Sat) kapatıldığında, bu Emir 1 (Al) hala zararı durdurda kapatıldığını ve böylece arka arkaya 2 emir verildiğini semafor eder, çünkü Toplam = 1 olur.


peki bana bu sorunun çözümünü söyle, tobish yerine toplam 1 yerine böyle bir etkiden kurtulmak için değiştir
 
Komut dosyasının yalnızca eklendiği grafiğin penceresinde değil, aynı zamanda diğer döviz çiftleri için de emirleri açıp açamayacağını söyleyebilir misiniz, buna göre başka hangi döviz çiftlerini açmanız gerektiğini belirtirseniz?
 
CreAndr :
Komut dosyasının yalnızca eklendiği grafiğin penceresinde değil, aynı zamanda diğer döviz çiftleri için de emirleri açıp açamayacağını söyleyebilir misiniz, buna göre başka hangi döviz çiftlerini açmanız gerektiğini belirtirseniz?

belki
 
abolk :

belki
#property show_inputs
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;


//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()

{
//::::Открытие и выставление ордеров


OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);

return (0);

}


ve işte bir seçenek, işe yarayacak mı, çalışmayacak mı?
Dosyalar:
 
CreAndr :

OrderSend("EURUSD",OP_BUY,Lots, NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits)," CleverEA",MagNum,0,Green);


ve işte bir seçenek, işe yarayacak mı, çalışmayacak mı?


Hayır, seçilenler mevcut enstrümandan iade edilecektir. Teklifler, talepler, rakamlar vb. enstrüman açıkça belirtilerek MarketInfo kullanılarak talep edilmelidir.
 
CreAndr :
#property show_inputs
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;


//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()

{
//::::Открытие и выставление ордеров


OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble( Ask ,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble( Ask ,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble( Bid ,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble( Bid ,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);

return (0);

}

ve işte bir seçenek, işe yarayacak mı, çalışmayacak mı?


olmaz. https://docs.mql4.com/ru/common/MarketInfo MarketInfo işlevini kullanmanız gerekir.

sayfada göreviniz için örnekler var

 
Yardım için teşekkürler.
Neden: