Lanet Hata 130 Cehenneme - sayfa 3

 
delcor wrote >>

Vangrosh

giriş için teşekkürler

ayağa kalkmama yardım eder misin

bu doğru mu

otomatik izli bir EA yapıyorum

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

{
if (OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); // bir TP ve SL yerleştirin
}
if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) // TP'yi yerleştirin
{
if(OrderStopLoss()>(Ask+Point*TrailingStop)+Point) // doğruyu kontrol edin
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)) // doğruysa siparişi değiştir
Print("Error_Modify - ",GetLastError());
else str=StringConcatenate("\n Bilet numaram ", OrderTicket(), " ve kayıp durdurma ayarım ", DoubleToStr(Ask+Point*TrailingStop,Digits)); // yeni kod
}
}
}

İşte farklı yaklaşımı açıklayan başka bir yazıda yazdığım şey.

>>İşte, yeni stoploss fiyatının eski stoploss'tan en az 1 puan veya daha yüksek olduğunu kontrol ederek kolay bir düzeltme. Bir Satış emri için sadece tersini yapın.

       if ( OrderType ( ) = = OP_BUY )
       {       
         if ( Bid - OrderOpenPrice ( ) > ( Point * TrailingStop ) )
         {        
             double oldStopLoss = OrderStopLoss ( ) ;
             double newStopLoss = Bid - Point * TrailingStop ;
             double nextStopLoss = oldStopLoss + Point ; // Adding 1 point to oldStopLoss, i.e. 76.78 to 76.79             
                       
             if ( newStopLoss > = nextStopLoss ) // checking that the new stoploss price is at least 1 point or greater then the old stoploss
             {                               
               OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , newStopLoss , 0 , 0 , Green ) ;
               return ;
             }
         }
       }


İşte kullandığım tam fonksiyon. Şimdi düşünüyorum da nextStopLoss'tan daha iyi bir değişken adı kullanabilirdim ve OrderModify()'a hata denetimi de eklemeliyim.

Ayrıca İzleyen Durdurma işlevim, aynı anda birden fazla siparişi açabilen bir EA'dadır, bu nedenle bu parametrelere sahiptir, böylece aynı anda birden fazla siparişte İzleyen Durdurma'yı güncelleyebilirim.

 void CheckTrailingStop ( int order_Ticket , int trailingStopValue )
{
   double oldStopLoss ;
   double newStopLoss ;
   double nextStopLoss ;
   int _trailingStop = trailingStopValue ;
   
   if ( order_Ticket < 0 ) return ;
                                    
   if ( OrderSelect ( order_Ticket , SELECT_BY_TICKET , MODE_TRADES ) = = false )
   {
       Print ( "CheckTrailingStop() - OrderSelect returned the error of " , GetLastError ( ) ) ;
       return ;    
   }
         
   if ( OrderType ( ) = = OP_BUY )
   {       
       if ( Bid - OrderOpenPrice ( ) > Point * _trailingStop )
       {        
         oldStopLoss = OrderStopLoss ( ) ;
         newStopLoss = Bid - Point * _trailingStop ;
         nextStopLoss = oldStopLoss + Point ; // Adding 1 point to oldStopLoss, i.e. 76.78 to 76.79            
                    
         if ( newStopLoss > = nextStopLoss )
         {                               
             OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , newStopLoss , 0 , 0 , Green ) ;
             return ;
         }
       }
   }
                                             
   if ( OrderType ( ) = = OP_SELL )
   {                
       if ( OrderOpenPrice ( ) - Ask > Point * _trailingStop )
       {
         oldStopLoss = OrderStopLoss ( ) ;
         newStopLoss = Ask + Point * _trailingStop ;
         nextStopLoss = oldStopLoss - Point ; // Subtracting 1 point from oldStopLoss, i.e. 76.78 to 76.77
                    
         if ( newStopLoss < = nextStopLoss | | ( OrderStopLoss ( ) = = 0 ) )
         {                               
             OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , newStopLoss , 0 , 0 , Green ) ;
             return ;
         }
       }
   }
}

Sonra start() işlevimde şunlar var:

 void start ( )
{                       
   if ( validTimePeriod = = false ) return ;
   if ( validTrailingStop = = false ) return ;
        
   //---- Start Main program ----
   Main ( ) ;
   
   if ( EnableHedging = = true )
   {
      HedgeStopLossCheck ( ) ;
      CheckHedges ( ) ;
   }
   
   if ( TrailingStop > 0 ) CheckTrailingStop ( currentOrderTicket , TrailingStop ) ;                 
           
   CheckWaiting ( ) ;
   
   GetOpenTradeLots ( ) ;    
      
   CheckIfCurrentOrder_Closed ( ) ;
}

Kodumu mümkün olduğunca belirli işlevlere bölmeyi sevdiğimi görebilmeniz için diğer işlev çağrılarını orada bıraktım. İşleri çok kolaylaştırıyor.

EA'nız hayırlı olsun.

 
vangrosh :

İşte farklı yaklaşımı açıklayan başka bir yazıda yazdığım şey.

>>İşte, yeni stoploss fiyatının eski stoploss'tan en az 1 puan veya daha yüksek olduğunu kontrol ederek kolay bir düzeltme. Bir Satış emri için sadece tersini yapın.


İşte kullandığım tam fonksiyon. Şimdi düşünüyorum da nextStopLoss'tan daha iyi bir değişken adı kullanabilirdim ve OrderModify()'a hata denetimi de eklemeliyim.

Ayrıca İzleyen Durdurma işlevim, aynı anda birden fazla siparişi açabilen bir EA'dadır, bu nedenle bu parametrelere sahiptir, böylece aynı anda birden fazla siparişte İzleyen Durdurma'yı güncelleyebilirim.

Sonra start() işlevimde şunlar var:

Kodumu mümkün olduğunca belirli işlevlere bölmeyi sevdiğimi görebilmeniz için diğer işlev çağrılarını orada bıraktım. İşleri çok kolaylaştırıyor.

EA'nız hayırlı olsun.

teşekkür ederim - iyi görünüyor

öyleyse, start() işlevinizi her parçanın altına yerleştirir misiniz?

 
Ben de korkunç bir hatayla ilgili bir sorunum var. Mesele şu ki, zararı durdur veya kar al özelliğim yok, sadece bekleyen emri veremiyor, bir sorun olmaması gereken piyasadan bir sürü pip uzakta...
 
TheEconomist wrote >>
Ben de korkunç bir hatayla ilgili bir sorunum var. Sorun şu ki, zararı durdur veya kar al özelliğim yok, sadece bekleyen emri veremiyor, bir sorun olmaması gereken piyasadan bir sürü pip uzakta...

Good'ole 130 ile ilgili sorun, bir sınıf veya hata grubunu (birini) belirtmesi ve herhangi bir anında düzeltmeye yol açmamasıdır.
Bir sorunu bile çözebilirsin ve o hala orada

Burada meydana gelen tek şey bir yazım hatası mı?

Bir Alımı Durdurma emri istediğinizde Sor üzerine bir Alım Limiti giriyor olabilirsiniz.

FWIW

-BB-

 
BarrowBoy :

Good'ole 130 ile ilgili sorun, bir sınıf veya hata grubunu (birini) belirtmesi ve herhangi bir anında düzeltmeye yol açmamasıdır.
Bir sorunu bile çözebilirsin ve o hala orada

Burada meydana gelen tek şey bir yazım hatası mı?

Bir Alımı Durdurma emri istediğinizde Sor üzerine bir Alım Limiti giriyor olabilirsiniz.

FWIW

-BB-

İşlem türünü seçen bir işlevim var:

 int SellOperation ( double ToCompare )
  {
   int op ;
   if ( Bid > ToCompare )
     op = OP_SELLSTOP ;
   if ( Bid = = ToCompare )
     op = OP_SELL ;
   if ( Bid < ToCompare )
     op = OP_SELLLIMIT ;        
   return ( op ) ;   
  }
  
  
int BuyOperation ( double ToCompare )
  { 
   int op ;
   if ( Ask > ToCompare )
     op = OP_BUYLIMIT ;
   if ( Ask = = ToCompare )
     op = OP_BUY ;
   if ( Ask < ToCompare )
     op = OP_BUYSTOP ;
   return ( op ) ;
  }

int WhatOperation ( int operation , double ToCompare )
  { 
   if ( operation = = OP_BUY )
     return ( BuyOperation ( ToCompare ) ) ;
   if ( operation = = OP_SELL )
     return ( SellOperation ( ToCompare ) ) ;     
  }       

bunun gibi:

09:28:46 2008.06.09 00:00 ForexCraft2 EURGBP,Günlük: Açılış Pilon 0 @ 0.8024 için seviye 2'de Satış iken teklif = 0.8016
09:28:46 2008.06.09 00:00 ForexCraft2 EURGBP,Günlük: SiparişGönderme hatası 130
09:28:46 2008.06.09 00:00 ForexCraft2 EURGBP,Günlük: ReliableOrderGönderme hatası : 130 : Geçersiz duraklar.


 

Merhaba Ekonomist

sadece biraz hızlı...

1. WhatOperation()'ın kendisine verilen normlara sahip olduğu garanti edilmedikçe, ToCompare'de herhangi bir normalleştirme görmeyin.

2. Çift kompozisyonların sorunları var - örneğin, 'Koşullu İfade hatası... [Akıl sonunda] eğer ( 1.4225 > 1.4225) DOĞRU DEĞİL!!!!!!'

3. https://book.mql4.com/appendix/limits adresindeki yönergeleri takip ediyor musunuz?

Saygılarımızla

 

130 ile 'Hızlı Soru'daki hatamı çözmek için bu gönderiyi okuyordum. Sipariş gönderme işlevi ve Yazdırma işlevine sahip günlük girişleri var, aranızda neler olduğunu bilen var mı?

Teşekkürler,

bauer çocuğu

 

.

görüldüğü gibi .../24681

 if ( isBuying ) 
{ 
   if ( stopLoss > 0 )
  ACCTSL = Ask - ( stopLoss * Point * MyDig ) ;

   if ( takeProfit > 0 )
  ACCTTP = Ask + ( takeProfit * Point * MyDig ) ;
   // Buy
  ticket = OrderSend ( Symbol ( ) , OP_BUY , lots , Ask , slippage , ACCTSL , ACCTTP , 
  nameEA , 16384 , 0 , Red ) ; 
   Print ( "Stop Loss Value" , ACCTSL ) ;
   Print ( "Take Profit Value" , ACCTTP ) ;

1. StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);

SL,TP, Tekliften en az StopLevel puanı uzakta olmalıdır

Aşağıya bakınız (**)


2. ACCTxx = NormalizeDouble(Sor ..(..), Rakamlar );


3. Print("Bid=",DoubleToString(Ask, Digits ),", Ask=",DoubleToString(Teklif, Digits ));


4. Yazdır ("Kaybı Durdur Değeri",DoubleToString( ACCTSL, Rakamlar ),", stopLoss=",stopLoss);
Yazdır ("Kâr Değeri Al", DoubleToString(ACCTTP, Rakamlar ),", takeProfit=",takeProfit);

Neden DoubleToString()? Print() yalnızca DÖRT HANGİ görüntüler



Btw , ben de en az bir kez Print("MyDig=",MyDig); Niye ya? hiçbir şekilde o zaman bunun için endişelenmene gerek yok. Küçük görünebilir, ancak bu kadar basit şeyleri çevreleyen komiklere şaşıracaksınız!


5. TÜM sorunlarınız, mevcut tüm bilgileri parmaklarınızın ucuna getirerek ve görüntüleyerek kolayca çözülebilir.

Sonra eski moda kağıt + kalem ile yanlış anlamaların nerede olduğunu görebilirsiniz .



(**)

Referans: https://book.mql4.com/appendix/limits

StopLevel Minimum Mesafe Sınırlaması.

Aşağıdaki koşullardan herhangi biri bozulursa ticaret işlemi yapılmayacaktır.

Sipariş türü Açık Fiyat StopLoss (SL) Kâr Al (TP)
Satın almak
Değişiklik yasaktır Bid-SL StopLevel TP-Teklif StopLevel
Satmak
Değişiklik yasaktır SL-Sor StopLevel Ask-TP StopLevel
Satın alma limiti
Ask-OpenPrice StopLevel OpenPrice-SL StopLevel TP-OpenPrice StopLevel
Satış sınırı
OpenPrice-Bid StopLevel SL-OpenPrice StopLevel OpenPrice-TP StopLevel
Satın Al Durdur
OpenPrice-Ask StopLevel OpenPrice-SL StopLevel TP-OpenPrice StopLevel
SatışDurdur
Bid-OpenPrice StopLevel SL-OpenPrice StopLevel OpenPrice-TP StopLevel

 
fbj wrote >>

.

görüldüğü gibi .../24681

1. StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);

SL,TP, Tekliften en az StopLevel puanı uzakta olmalıdır

Aşağıya bakınız (**)


2. ACCTxx = NormalizeDouble(Sor ..(..), Rakamlar );


3. Print("Bid=",DoubleToString(Ask, Digits ),", Ask=",DoubleToString(Teklif, Digits ));


4. Yazdır ("Kaybı Durdur Değeri",DoubleToString( ACCTSL, Rakamlar ),", stopLoss=",stopLoss);
Yazdır ("Kâr Değeri Al", DoubleToString(ACCTTP, Rakamlar ),", takeProfit=",takeProfit);

Neden DoubleToString()? Print() yalnızca DÖRT HANGİ görüntüler



Btw , ben de en az bir kez Print("MyDig=",MyDig); Niye ya? hiçbir şekilde o zaman bunun için endişelenmene gerek yok. Küçük görünebilir, ancak bu kadar basit şeyleri çevreleyen komiklere şaşıracaksınız!


5. TÜM sorunlarınız, mevcut tüm bilgileri parmaklarınızın ucuna getirerek ve görüntüleyerek kolayca çözülebilir.

Sonra eski moda kağıt + kalem ile yanlış anlamaların nerede olduğunu görebilirsiniz .



(**)

Referans: https://book.mql4.com/appendix/limits

StopLevel Minimum Mesafe Sınırlaması.

Aşağıdaki koşullardan herhangi biri bozulursa ticaret işlemi yapılmayacaktır.

Sipariş türü Açık Fiyat StopLoss (SL) Kâr Al (TP)
Satın almak
Değişiklik yasaktır Bid-SL StopLevel TP-Teklif StopLevel
Satmak
Değişiklik yasaktır SL-Sor StopLevel Ask-TP StopLevel
Satın alma limiti
Ask-OpenPrice StopLevel OpenPrice-SL StopLevel TP-OpenPrice StopLevel
Satış sınırı
OpenPrice-Bid StopLevel SL-OpenPrice StopLevel OpenPrice-TP StopLevel
Satın Al Durdur
OpenPrice-Ask StopLevel OpenPrice-SL StopLevel TP-OpenPrice StopLevel
SatışDurdur
Bid-OpenPrice StopLevel SL-OpenPrice StopLevel OpenPrice-TP StopLevel

Gerçekten ne olduğunu ve bunun neden olduğunu söyleyemem

2009.08.05 14:32:26 Trender Beta Testi EURUSD,H1: OrderSend (Trender Beta Testi) #130 hatasıyla başarısız oldu

2009.08.05 14:32:26 Trender Beta Testi EURUSD,H1: MyDig=10

2009.08.05 14:32:26 Trender Beta Testi EURUSD,H1: Kâr Al Değeri1.43155, Kâr Al=110

2009.08.05 14:32:26 Trender Beta Testi EURUSD,H1: Stop Loss Value1.42255, stopLoss=200

2009.08.05 14:32:26 Trender Beta Testi EURUSD,H1: Bid=1.44255, Ask=1.44229

 
Bauer_Boy wrote >>

Gerçekten ne olduğunu ve bunun neden olduğunu söyleyemem

Gerçekten tüm kodu göstermenin zamanı geldi. Tereddüt ederseniz PM kullanabilirsiniz.

Tekliften daha düşük TP'niz olduğunu görüyorum