Nasıl kodlanır? - sayfa 336

 
tkuan77:
Merhaba mladen, üzülerek söylüyorum ki tekrar denedim ve hala çalışmıyor.

İşlemimi belirli bir zamanlamaya göre kapatabilmemin başka bir yolu var mı?

Saygılarımızla

Ryan

Bu kodu kullandım:

extern bool UseCurrSymbol = false;

int init() { return(0); }

int deinit() { return(0); }

void start(void)

{

bool result;

if(OrdersTotal()>0)

{

if (TimeCurrent()>= StrToTime("07:00:00"))

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

double pBid=MarketInfo(OrderSymbol(),MODE_BID);

result = OrderClose(OrderTicket(),OrderLots(),pBid,3,Blue);

}

if (OrderType()==OP_SELL)

{

double pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

result = OrderClose(OrderTicket(),OrderLots(),pAsk,3,Red);

}

}

}

}

return;

}

Test etmek için siparişi kapattı (örneğe bakın)

Dosyalar:
test_closed.gif  63 kb
 
mladen:
Bu kodu kullandım:
extern bool UseCurrSymbol = false;

int init() { return(0); }

int deinit() { return(0); }

void start(void)

{

bool result;

if(OrdersTotal()>0)

{

if (TimeCurrent()>= StrToTime("07:00:00"))

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

double pBid=MarketInfo(OrderSymbol(),MODE_BID);

result = OrderClose(OrderTicket(),OrderLots(),pBid,3,Blue);

}

if (OrderType()==OP_SELL)

{

double pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

result = OrderClose(OrderTicket(),OrderLots(),pAsk,3,Red);

}

}

}

}

return;

}

Test etmek için siparişi kapattı (örneğe bakın)

Merhaba mladen, teşekkürler. sorun tarafımca çözülmüştür. sadece bir yan not, kodlamanızdaki bu birkaç liner'ın amacının ne olduğunu bana abit açıklayabilir misiniz?

extern bool UseCurrSymbol = false; ve

if (!UseCurrSymbol || OrderSymbol()==Symbol())

Saygılarımızla

Ryan

 
tkuan77:
Merhaba mladen, teşekkürler. sorun tarafımca çözülmüştür. sadece bir yan not, kodlamanızdaki bu birkaç liner'ın amacının ne olduğunu bana abit açıklayabilir misiniz?

extern bool UseCurrSymbol = false; ve

if (!UseCurrSymbol || OrderSymbol()==Symbol())

Saygılarımızla

Ryan

UseCurrSymbol değişkenini ve kodunuzda tam olarak bu satırı kullandınız

Kodun, kodunuzla aynı değişkenleri kullanması için bu değişkeni yapmak zorunda kaldım.

 
mladen:
UseCurrSymbol değişkenini kullandınız ve kodunuzdaki tam satırı, kodun kodunuzla aynı değişkenleri kullanması için bu değişkeni yapmak zorunda kaldım.

Merhaba mladen, kodun bu kısmını bana daha önce sağladığınız kaynaklardan aldığım için üzgünüm.

demek istediğim, neden bir bool UseCurrSymbol'u false olarak ayarlamamız gerektiği ve 2. satırın --> if (!UseCurrSymbol || OrderSymbol()==Symbol()) için amacının ne olduğuydu.

 
tkuan77:
Merhaba mladen, kodun bu kısmını bana daha önce sağladığınız kaynaklardan aldığım için üzgünüm. demek istediğim, neden bir bool UseCurrSymbol'u false olarak ayarlamamız gerektiği ve 2. satırın --> if (!UseCurrSymbol || OrderSymbol()==Symbol()) için amacının ne olduğuydu.

false olarak ayarlamamıza gerek yok

Bunu true olarak ayarlarsanız, siparişler için yalnızca mevcut sembol kontrol edilir . Böylece hangi siparişleri işlemek istediğinizi seçmenize olanak tanır.

 

Merhaba millet!

Aşağıdaki problemim var.

Bir icustom indi değerinin örneğin iCustom(NULL,0,"MACD",12,26,9,0,i) gibi bir alt işlevde kullanılmasını istiyorum:

double Mom(const double& series[], int period, int totcount, int index)

{

if (totcount<1 || period<1) return (EMPTY_VALUE);

if (indextotcount-1) return (EMPTY_VALUE);

return (series-series);

}

"iCustom(NULL,0,"MACD",12,26,9,0,i)" momentumunu elde etmek için...

Annemle normal dediğimde(Yüksek,22,Barlar,i)

bu çalışıyor, ancak "Yüksek" yerine özel indi kullandığımda, elbette çalışmıyor.

Öyleyse sorum şu, kodun çalışmasını sağlamak için bunu nasıl uygulayabilirim?

Herhangi bir yardım için teşekkürler!

hoşçakal, AT

 
at120:
Merhaba millet!

Aşağıdaki problemim var.

Bir icustom indi değerinin örneğin iCustom(NULL,0,"MACD",12,26,9,0,i) gibi bir alt işlevde kullanılmasını istiyorum:

double Mom(const double& series[], int period, int totcount, int index)

{

if (totcount<1 || period<1) return (EMPTY_VALUE);

if (indextotcount-1) return (EMPTY_VALUE);

return (series-series);

}

"iCustom(NULL,0,"MACD",12,26,9,0,i)" momentumunu elde etmek için...

Annemle normal dediğimde(Yüksek,22,Barlar,i)

bu çalışıyor, ancak "Yüksek" yerine özel indi kullandığımda, elbette çalışmıyor.

Öyleyse sorum şu, kodun çalışmasını sağlamak için bunu nasıl uygulayabilirim?

Herhangi bir yardım için teşekkürler!

hoşçakal, AT

120'de

Göstergeler klasöründe "macd" adında bir göstergeniz var mı (yerleşik macd'yi kastetmiyorum, ancak bazı özel macd'leri kastediyorum)? Evet ise, parametrelerin doğru olup olmadığını kontrol edin

 

Merhaba Mladen!

Hızlı tekrar için teşekkürler!

Üzgünüm MACD kötü bir örnekti, başka herhangi bir indi'yi özel bir MACD veya bunun gibi bir şey alın.

Çıktıyı ekstra pencereden kontrol ettim ve doğru ayarları yapmak için indi /output'u test ettim,

"iCustom(NULL,0,"myIndi",0,i)"nin doğru parametrelere sahip olduğundan emin olmak için. Corse'nin derlenmesi, doğru klasör vb.

Her zaman hatayı alıyorum (bir değişken kullandığımda) - ör.

double mom1 = iCustom(NULL,0,"myIndi",0,i); -> anne(anne1,Barlar,20,i)

-> "anne" - parametre görüşmesine izin verilmiyor veya doğrudan kullandığımda ->

mom( iCustom(NULL,0,"myIndi",0,i),Barlar,20,i)

Hata: iCustom - parametre referans olarak iletildi, değişken bekleniyor

Yardım ve bilgi için teşekkürler!

hoşçakal, AT

 
at120:
Merhaba Mladen!

Hızlı tekrar için teşekkürler!

Üzgünüm MACD kötü bir örnekti, başka herhangi bir indi'yi özel bir MACD veya bunun gibi bir şey alın.

Çıktıyı ekstra pencereden kontrol ettim ve doğru ayarları yapmak için indi /output'u test ettim,

"iCustom(NULL,0,"myIndi",0,i)"nin doğru parametrelere sahip olduğundan emin olmak için. Corse'nin derlenmesi, doğru klasör vb.

Her zaman hatayı alıyorum (bir değişken kullandığımda) - ör.

double mom1 = iCustom(NULL,0,"myIndi",0,i);-> mom(mom1,Bars,20,i)

-> "anne" - parametre görüşmesine izin verilmiyor veya doğrudan kullandığımda ->

mom( iCustom(NULL,0,"myIndi",0,i),Barlar,20,i)

Hata: iCustom - parametre referans olarak iletildi, değişken bekleniyor

Yardım ve bilgi için teşekkürler!

hoşçakal, AT

Ben basit iCustom() çağrısı kullanıyorum, o zaman hata sadece parametrelerde olabilir

iCustom()'u mom() işlevi için bir parametre olarak kullanamazsınız (mom işlevi başlığını kontrol edin ve mom() işlevinin hangi parametreleri ve ne tür parametreleri kabul ettiğini göreceksiniz). iCustom()'un sonucu "double" olarak tanımlanır - referansla geçen bir dizinin hızını alamaz. Bu konuyu da kontrol edin: https://www.mql5.com/en/forum/173108 - belki yardımcı olur

 

Merhaba Mladen!

iCustom'ımın çağrısının doğru olduğunu düşünüyorum, çünkü testte ve normalde (verileri dışa aktarma veya indi olarak kullanma)

şimdiye kadar iyi çalışıyor. Bence sorun bahsettiğiniz gibi double/array değerinde.

Şimdi kullandığımda

çift anne1[];

mom1 = iCustom(NULL,0,"myIndi",0,i);

ve a -> mom(mom1,Bars,20,i);

-> "anne" - parametre görüşmesine izin verilmiyor

Bunu nasıl doğru yazarım?

Çok teşekkürler ve hoşçakalın, AT