MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1165

 
Igor Makanu :

Bu senin için bir soru ortaya çıkarırsa açıklayabileceğimden şüpheliyim.

bir nesne ... peki, bir sınıf değişkeni olsun

kod bölümünüzde CProgram sınıfı

kodda bir yere yazılmalı

ve aramak zorundasın

Sen tanrısın!!! Seni anladım ve her şey yolunda gitti)
 

Bana bunun ne anlama geldiğini söyle?

' OrderSend ' dönüş değeri kontrol edilmelidir TestLibrary.mq4 64 6

 
MakarFX :

Bana bunun ne anlama geldiğini söyle?

'OrderSend' dönüş değeri kontrol edilmelidir TestLibrary.mq4 64 6

OrderSend sonucunun kontrol edilmesi gerekir. :-)

 
Maxim Kuznetsov :

OrderSend sonucunun kontrol edilmesi gerekir. :-)

Ben İngilizce biliyorum)))

nasıl kontrol edilir?

 
MakarFX :

Ben İngilizce biliyorum)))

nasıl kontrol edilir?

result=SomeOperation(....)

if (result!=ok) {

Print("Error");

}

 
Maxim Kuznetsov :

result=SomeOperation(....)

if (result!=ok) {

Print("Error");

}

teşekkürler
 
//+------------------------------------------- --------------------+
//| TEST_V01.mq4 |
//| Telif Hakkı 2019, MetaQuotes Yazılım A.Ş. |
//| https://www.mql5.com |
//+------------------------------------------- --------------------+
#property telif hakkı "Telif hakkı 2019, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
#define MAGICMA 20131111
//--- Girişler
girdi int Risk = 1;
giriş int Maks_Risk = 8;
giriş int SL = 100;
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{
//---
//---
dönüş(INIT_SUCCESSED);
}
//+------------------------------------------- --------------------+
//| Uzman başlatmasızlaştırma işlevi |
//+------------------------------------------- --------------------+
geçersiz OnDeinit(const int nedeni)
{
//---
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
if(SiparişToplam()==0)
if(OrderSend(Symbol(), OP_BUY, Lot_Calculate(Symbol(), Risk, Max_Risk, SL), Ask, 30, NormalizeDouble(Ask - SL*Point, Digits), NormalizeDouble(Ask + SL*Point, Digits)," ",MAGICMA,0,Mavi)==-1)
Print("Hata:",GetLastError());
}
//+------------------------------------------- --------------------+
//------------------------------------------------ -----------------
// Lot_Hesapla |
//------------------------------------------------ -----------------
double Lot_Calculate(string _symbol, int _risk, int _m_risk, int _pips)
{
_m_risk = Maks_Risk;
pip+=20;
double minlot = MarketInfo(_symbol,MODE_MINLOT);
double maxlot = MarketInfo(_symbol,MODE_MAXLOT);
double steplot = MarketInfo(_symbol,MODE_LOTSTEP);
double money_risk = NormalizeDouble(AccountEquity()*_risk/100.2);
double calk_pip_cost = NormalizeDouble(money_risk/_pips,2); // bir pip maliyeti
double lot_pip_cost = MarketInfo(_symbol,MODE_TICKVALUE); // fiyat bir standart lot hacmiyle değiştiğinde bir puanın maliyeti
// while(!MathIsValidNumber(lot_pip_cost || lot_pip_cost ==0)
//{
// lot_pip_cost = MarketInfo(_symbol,MODE_TICKVALUE);
//}
çift lot = calk_pip_cost/lot_pip_cost;
//------------------------------------------------ -------------
double money_m_risk = NormalizeDouble(AccountEquity()*2*_risk/100.2); // riski ikiye katlayarak ben de kayıt oldum
double _m_calk_pip_cost = NormalizeDouble(money_m_risk/_pips,2); // ikiye katlandıktan sonra bir puanın maliyetinin hesaplanması
çift lot_m = _m_calk_pip_cost/lot_pip_cost; // ikiye katlandıktan sonra lot hesaplama
if(lot <= minlot) lot = minlot;
else if(lot >= maxlot) lot = maxlot;
else if(lot > minlot && lot < maxlot)
{
int k = int((lot - minlot)/steplot);
lot = NormalizeDouble(minlot+k*steplot,2);
}
dönüş(lot);
// ------------------------------------------------ ------
{
if(lot_m <= minlot) lot_m = minlot; // bu satırdan benim girişimim
else if(lot_m >= maxlot) lot_m = maxlot;
else if(lot_m > minlot && lot_m < maxlot)
{
int k = int((lot - minlot)/steplot);
lot_m = NormalizeDouble(minlot+k*steplot,2);
}
dönüş(lot_m);
if(OrderProfit()>0) lot--;
if(OrderProfit()<0) lot_m++;
}
if(_m_risk == Maks_Risk) lot_m = lot; // burada, genel olarak, ne anlayacaksın
dönüş(0);

}


İki gündür acı çekiyorum. Risk yeniden hesaplama işlevi yazamıyorum.

Fikir şudur: Anlaşma TP tarafından kapatılırsa, risk miktarı aynı kalır.

Riski SL ile 2 kat arttırırsak ve bu şekilde danışmanın girdi değişkenlerinin değerine kadar devam edersek Max_Risk = 8 diyelim;

ve ardından ilk riske sıfırlayın Risk = 1;

Peki, iki katına çıktıktan sonra anlaşma TR tarafından kapatılırsa, ilk riske döneriz Risk = 1;

Yardım edebilir misin?

Şimdiden teşekkürler.

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. и снова dll и маркет День добрый! Правило №1 dll на...
 
Hiç de öyle değil.
 

Tünaydın!

Profesyonel yardım. Bir sorunu çözemiyorum. İşte kod:


datetime some_time=TimeCurrent();

int başlangıç()

{

çift toplam;

çift fark;

int k=iBarShift("", PERIOD_M5 ,bazı_zaman);

double VAL0=MathAbs(iATR(NULL,0,1,1))/Nokta;

double VAL1=MathAbs(iATR(NULL,0,1,0))/Nokta;

eğer (VAL1>VAL0)

{

razn =MathAbs((iATR(NULL,0,1,0))-(iATR(NULL,0,1,1)))/Nokta;

for(int i = k; ben >= 1; i--)

{

toplam=toplam+razn;

}

Comment("Kullanılan dönemler: ",k,"\n",

"Önceki ATR: "+VAL0+"\n",

"ATR akımı: ",VAL1,"\n",

"ATR farkı: ",razn,"\n",

"FARK BİRİKİMİ: ",toplam,"\n");

}

dönüş(0);

}

Sonuç olarak şudur: danışman, mevcut ATR değeri ile önceki değer arasındaki farkı hesaplar. ANCAK! Sadece yükselen ATR ile.

Bu fark "razn" değişkeninde gösterilir. Her yeni çubuğun gelişiyle birlikte "summ" değişkeninde toplanacak/birikecek "razn" değişkeninin değerine ihtiyacım var.

Mevcut sürümde "summ" birikimi doğru çalışmıyor.

Bunun döngülerden olduğundan şüpheleniyorum.


Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
 
İyi günler forum üyeleri. Herhangi bir bilgi bulamıyorum. Alçaklardan ve yükseklerden belirli bir noktaya kadar otomatik olarak çizgiler (yatay değil) çizmek için herhangi bir araç var mı? Başka bir deyişle, düşük veya yüksek tanımı ve o muma, yüksek veya alçaktan olan mesafenin noktalarda sabitlendiği bir çizginin oluşturulması? Fraktal göstergesinin düşük ve yüksek tanımıyla meşgul olduğunu buldum. Ama fiyatın belli bir puan değiştiği noktaya kadar çizgiler çizmenizi sağlayan böyle bir eklenti bulamadım.