Nasıl kodlanır? - sayfa 265

 

bilinmeyen alt pencere numarası

Merhaba kodlayıcı arkadaşlar

Herhangi biri iCustom aramalarıyla bu soruna bir çözüm buldu, aklıma gelen her şeyi denedim ama yine de Uzmanlar sekmesinde aynı mesajı alıyorum.

ObjectCreate işlevi için bilinmeyen alt pencere numarası -1

Saygılarımızla

 

Göstergedeki alt pencere çağrılarını kaldırın

cja:
Merhaba kodlayıcı arkadaşlar

Herhangi biri iCustom aramalarıyla bu soruna bir çözüm buldu, aklıma gelen her şeyi denedim ama yine de Uzmanlar sekmesinde aynı mesajı alıyorum.

ObjectCreate işlevi için bilinmeyen alt pencere numarası -1

Saygılarımızla

Merhaba CJA,

Bu soruna geçici bir çözüm bulmak için kullandığım bir çözümüm var.

EA'nızın iCustom'da aradığı gösterge, Nesnelerini çizmek için bir alt pencere bulmaya çalışıyor.

Çoğu durumda, göstergenizin herhangi bir şey çizmesine ihtiyacınız yoktur, yalnızca gösterge değerlerini EA'nıza sağlarsınız.

Benim çözümüm, göstergenin bir kopyasını yapmak ve alt pencere çağrılarını ve Nesne çizim rutinlerini silmek.

Bu, alt pencere hatalarını ortadan kaldırır ve EA'nın daha hızlı çalışmasını sağlar.

Ardından, EA'nız için iCustom ifadelerinizde bu yeni gösterge adını kullanın.

Muhtemelen daha iyi bir kod çözümü olduğundan eminim, ancak bu benim için çalışıyor.

Bu yardımcı olur umarım,

Robert

 

iCustom alt pencere hataları

cosmiclifeform:
Merhaba CJA,

Bu soruna geçici bir çözüm bulmak için kullandığım bir çözümüm var.

EA'nızın iCustom'da aradığı gösterge, Nesnelerini çizmek için bir alt pencere bulmaya çalışıyor.

Çoğu durumda, göstergenizin herhangi bir şey çizmesine ihtiyacınız yoktur, yalnızca gösterge değerlerini EA'nıza sağlarsınız.

Benim çözümüm, göstergenin bir kopyasını yapmak ve alt pencere çağrılarını ve Nesne çizim rutinlerini silmek.

Bu, alt pencere hatalarını ortadan kaldırır ve EA'nın daha hızlı çalışmasını sağlar.

Ardından, EA'nız için iCustom ifadelerinizde bu yeni gösterge adını kullanın.

Muhtemelen daha iyi bir kod çözümü olduğundan eminim, ancak bu benim için çalışıyor.

Bu yardımcı olur umarım,

Robert

Teşekkürler Robert - öneriniz işe yarıyor, ancak internette bir arama yapmama ve işe yarayan veya mantıklı gelen hiçbir çözüm bulamamama rağmen, bunu yapmanın başka bir yolu olması gerektiğinden şüpheleniyorum, sadece bir sürü soru ve cevap yok. Bu yüzden yardımın için bir kez daha teşekkürler.

Saygılarımızla

 

CJA

Sadece bir öneri: neden (iCustom() ile çağrıldığında) istenen pencere numarasını iletmek için bir parametre kullanmıyorsunuz? Şuna benzer bir şey: if (ParameterWindowID>=0) o zaman iCustom'dandır, yoksa bazı varsayılan kodlar yapın .

Bu şekilde, başka bir koddan çağrıldığında bile onu nesneleri çizmeye zorlayabilir ve nesneleri doğru bir yere çizebilirdi.

 

Kodlama Yardımı

Merhaba millet.

Lütfen biri bana e-posta uyarı raporunda BOLD textFONTtype kullanmanın mümkün olup olmadığını söyleyebilir mi? Evet olduğunda bunu nasıl kodlayabilirim?

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

 
codersguru:
CSV dosyasına nasıl kaydedileceğini mi kastediyorsunuz?

Şuna göz at:

Araçlar - .csv okuyucu

Merhaba, Guru,

Web sitenizde bu dll'yi indirebileceğim bir yer var mı? Bence bu harika bir araç ve benden daha iyi yazabileceğinden oldukça eminim, bu yüzden onunla uğraşmayacağım. Şimdiden teşekkürler.

Kayıt olmam gerekiyor mu? Bu, indirme bölümünün altında bulunur ancak nasıl bir şey indireceğimi bulamadım.

 

hızlı EA değişikliği

Merhaba,

Biraz yardıma ihtiyacım var, aşağıdaki kodu değiştirmeye çalıştım ama EA MT4'ü çökertmeye devam etti.

Mevcut çubuk (yani emrin yürütüldüğü çubuk) kapandığında emrin kapanmasını istiyorum. Temel olarak bir bar ticareti yapın.

Bu orijinal koddur, sinyalden sinyale işlem yapar.

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

if (signaldown!=EMPTY_VALUE&&signaldown!=0) Order = SIGNAL_CLOSEBUY;

//+------------------------------------------------------------------+

//| Signal End(Exit Buy) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Sell) |

//+------------------------------------------------------------------+

if (signalup!=EMPTY_VALUE&&signalup!=0) Order = SIGNAL_CLOSESELL;

//+------------------------------------------------------------------+

//| Signal End(Exit Sell) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

//if (timeprev!=Time[0]){

// timeprev = Time[0];

if (signalup!=EMPTY_VALUE&&signalup!=0)

{

Order = SIGNAL_BUY;

}

if (signaldown!=EMPTY_VALUE&&signaldown!=0){

Order = SIGNAL_SELL;

}

// }

//+------------------------------------------------------------------+

//| Signal End |

//+------------------------------------------------------------------+

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (100 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+

Biri bana yardım edebilir mi?

 

Ben de bu kodu buldum,

if(data!=iTime(Symbol(),0,0))

{

if(signalup!=EMPTY_VALUE&&signalup!=0)

{

if(openpos()>0)

{

for(i=0;i<OrdersTotal();i++)

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn)

{

if(OrderClose(OrderTicket(),lots,Ask,slip))

Print("short was closed");

}

}

}

Print("try open long");

Print(Symbol());

nt=OrderSend(Symbol(),OP_BUY,lots,Ask,slip,0,0,"ab",mn,0,Green);

if(nt>0)

Print("long order was opened");

}

if(signaldown!=EMPTY_VALUE&&signaldown!=0)

{

if(openpos()>0)

{

for(i=0;i<OrdersTotal();i++)

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderMagicNumber()==mn)

{

if(OrderClose(OrderTicket(),lots,Bid,slip))

Print("long was closed");

}

}

}

Print("try open short");

Print(Symbol());

nt=OrderSend(Symbol(),OP_SELL,lots,Bid,slip,0,0,"ab",mn,0,Red);

if(nt>0)

Print("short was opened");

}

data=iTime(Symbol(),0,0);

}

//----

//----

return(0);

}

//+------------------------------------------------------------------+

int openpos()

{

int j=0;

int i,n;

n=OrdersTotal();

for(i=0;i<n;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

if(OrderSymbol()==Symbol()&&OrderMagicNumber()==mn&&(OrderType()==OP_SELL||OrderType()==OP_BUY))

j++;

}

return(j);

Herhangi bir uzman bana hangisinin daha iyi yazılmış olduğunu söyleyebilir mi?

 

Bir çiftin tüm siparişleri için başabaş (sihir)

Herkese selam,

Bir çiftin tüm emirlerini (al ve sat) sihirle toplamak istiyorum ve eğer bir başabaşa ulaşırlarsa, tüm emirler kapatılmalıdır.

herhangi bir rehberlik çok hoş geldiniz, teşekkürler

extern bool PairBreakeven=true;// Aynı çiftin/büyünün tüm siparişleri için çift başına başabaş

extern double Pairbreakevengain=6;// başabaşa olanak sağlamak için gereken pip cinsinden kazanç

dış çift Başabaş=3;// başabaş, sipariş kapandı, 3 pip kâr/kayma

çift Pairmovebreakeven;

if(PairBreakeven==true){

if(Pairbreakevengain>0)Pairmovebreakeven(Pairbreakevengain,Pairbreakeven);

CloseBuyOrders(Sihirli);

CloseSellOrders(Sihirli);

}

void Pairmovebreakeven(double Pairbreakevengain,double Pairbreakeven){

Yenileme Oranları();

if(SiparişToplam()>0){

for(int i=OrdersTotal();i>=0;i++){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic ){

dönüş;

}

}

}

}

int CloseBuyOrders(int Magic){ //op_sell benzer

int toplam=SiparişToplam();

for(int cnt=toplam-1;cnt>=0;cnt--){

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol()){

if(OrderType()==OP_BUY){

OrderClose(OrderTicket(),OrderLots(),Bid,3*mt);

}

}

}

dönüş(0);

}

 

3 veya daha fazla boyutlu ArraySort.

Bu konuda herhangi bir uzman yardımcı olabilir mi?

1 veya 2 boyutlu dizi için arraysort'u başarıyla kullanmayı denedim. Ama 3 boyutta takılıp kaldım. Bildiğim kadarıyla arraysort, sıralama için yalnızca ilk sütunu kullanır . Bu dizi sıralamanın 3 veya daha fazla boyutta nasıl çözüleceği konusunda tavsiyede bulunan var mı?

bool Restart = true;

double arraystore[20][20][20];

double ArrayActual[20] = {1.23,3.65,0.02,5.44,0.92,0.11,1.21,999.0,555.5,0.0001,44.221,1.01,0.002};

void init()

{

if (Restart == true)

{

Go();

Restart = false;

}

}

void start()

{

}

void Go()

{

for (int a = 1; a<=3; a++)

{

for (int b = 1; b<=6; b++)

{

int c = b+ (a-1)*6;

arraystore[a][0] = ArrayActual[c];

arraystore[a][1] = a;

arraystore[a][2] = b +a;

Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]);

}

}

ArraySort(arraystore,WHOLE_ARRAY,1,MODE_DESCEND);

for ( a = 1; a<=3; a++)

{

for ( b = 1; b<=6; b++)

{

Print ( arraystore[a][0] + " . " + arraystore[a][1] + " . " + arraystore[a][2]);

}

}

}
Neden: