[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 121

 
kilnart :

Cımbız kalıbı için Uzman Danışman yazmak istiyorum.

açılış koşulu olarak seçilen

Maalesef koşulun yanlış olduğu ortaya çıktı, çünkü 'sl' 100.000000 fiyatına ayarlandı ve 'tp' genellikle bir hata gösteriyor.

Bir koşul eklemeye karar verdim, 1 onay işaretini dikkate alın.

Sonuç aynı. sorunumu nasıl çözebilirim?

Step=100 değişkenine sahip misiniz? Eğer öyleyse, kodda bundan sonra ne olacağını görün.

 
      Step=MarketInfo(Symb,MODE_STOPLEVEL);
 
kilnart :

Bak, noktalı virgül (;),

  Low2=Low[ iLowest ( NULL , 0 ,MODE_LOW, 10 , 2 )]    
  High2=High[ iHighest ( NULL , 0 ,MODE_HIGH, 10 , 2 )] 
 
evet, hepsi yerinde. Foruma yazarken uğraşmadım
 
kilnart :
evet, hepsi yerinde. Foruma yazarken uğraşmadım
İşte kodunuz, her şey çalışıyor
 //+------------------------------------------------------------------+
//|                                                     Проверка.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   bool bull_pincet=false;
   bool bear_pincet=false;
   double sl,tp;
   int Total= OrdersTotal (); 
   double Step= MarketInfo ( Symbol (),MODE_STOPLEVEL);
//----
 double Low2=Low[ iLowest ( NULL , 0 ,MODE_LOW, 10 , 2 )];    
 double High2=High[ iHighest ( NULL , 0 ,MODE_HIGH, 10 , 2 )];     

if (Low[ 1 ]==Low2 ) bull_pincet=true;
if (High[ 1 ]==High2) bear_pincet=true;
   while (true)
      {
       
       if (Total== 0 && bull_pincet==true)
        {
         sl=Low[ 1 ];
         if (sl<Step)sl=Step;
         tp=Ask+((Ask-sl)* 2 );
                  
         OrderSend ( Symbol (),OP_BUY, 0.01 ,Ask, 3 ,sl,tp);
         return ;
        }

         if (Total== 0 && bear_pincet==true)
         {
          sl=High[ 1 ];
           if (sl<Step)sl=Step;
          tp=Bid-((sl-Bid)* 2 );
           OrderSend ( Symbol (),OP_SELL, 0.01 ,Bid, 3 ,sl,tp);
           return ;
         }
       break ;
      }   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
kod çalışmıyor. kopyaladım, yapıştırdım, bazı hataları düzelttim sonuç benimkiyle aynı. zararı durdur 100000'de
 
kopyalandı, yapıştırıldı, bazı hatalar düzeltildi, sonuç - test cihazındaki kod 4. karakterde çalışıyor:
 int init() { return ( 0 );}
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit(){ return ( 0 ); }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   bool bull_pincet=false;
   bool bear_pincet=false;
   double sl,tp;
   int Total= OrdersTotal (); 
   double Step= MarketInfo ( Symbol (),MODE_STOPLEVEL);
//----
double Low2=Low[ iLowest ( NULL , 0 ,MODE_LOW, 10 , 2 )];    
double High2=High[ iHighest ( NULL , 0 ,MODE_HIGH, 10 , 2 )];     

if (Low[ 1 ]==Low2 ) bull_pincet=true;
if (High[ 1 ]==High2) bear_pincet=true;
   while (true)
      {
       if (Total== 0 && bull_pincet==true)
        {
         sl=Low[ 1 ];
         if (sl>Bid-Step* Point )sl=Bid-Step* Point ;
        tp=Bid+Step* Point * 2 ;
         
         //if(sl<Step)sl=Step;
         // tp=Ask+((Ask-sl)*2);
                  
         OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,sl,tp);
         return ;
        }

         if (Total== 0 && bear_pincet==true)
         {
          sl=High[ 1 ];
           if (sl<Ask+Step* Point )sl=Ask+Step* Point ;
         tp=Ask-Step* Point * 2 ;
         //  if(sl<Step)sl=Step;
         // tp=Bid-((sl-Bid)*2);
           OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 ,sl,tp);
           return ;
         }
       break ;
      }   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
Fillelin :
Burada benzer bir komut dosyası sunabilirim.

Koddaki açıklama.

Teşekkür ederim! Bu bir komut dosyasıysa, o zaman uygun olabilir - sonuçta, uzmanlara eklerseniz komut dosyası bir danışman olarak çalışabilir.

Derlenmiş danışmana gelince - onu derleyemedim, sonunda hatalarla karşılaştım:

'GetNameOP' - function is not defined C:\Program Files (x86)\IamFX MT4\experts\VirtTPSL-Tr_EA.mq4 (45, 31)
'ErrorDescription' - function is not defined C:\Program Files (x86)\IamFX MT4\experts\VirtTPSL-Tr_EA.mq4 (45, 49)
Düzeltmelerden sonra bile 2 özel işlev eksik.
 
Roll :
kopyalandı, yapıştırıldı, bazı hatalar düzeltildi, sonuç - test cihazındaki kod 4. karakterde çalışıyor:

Aferin . Bakalım Adım=0

   if (sl>Bid-Step* Point )sl=Bid-Step* Point ;
  tp=Bid+Step* Point * 2 ;

sl ve tp neye eşit olacak

Ve bu sorunu ortaya atan kişinin sl=0, tp=0 sırasını ayarlaması ve sonra değiştirmesi gerekiyor.

Muhtemelen.

 
Lians :

Teşekkür ederim! Eğer bu bir senaryoysa, o zaman belki işe yarar - uzmanlara eklerseniz, senaryo bir danışman olarak çalışabilir.

Derlenmiş danışmana gelince - onu derleyemedim, sonunda hatalarla karşılaştım:

'GetNameOP' - function is not defined C:\Program Files (x86)\IamFX MT4\experts\VirtTPSL-Tr_EA.mq4 (45, 31)
'ErrorDescription' - function is not defined C:\Program Files (x86)\IamFX MT4\experts\VirtTPSL-Tr_EA.mq4 (45, 49)
Düzeltmelerden sonra bile 2 özel işlev eksik.

Igor Kim'de çalışıyor

https://www.mql5.com/ru/forum/107476/page6#69097

Ve 'ErrorDescription', kodun başına ekleyin

 #include <stdlib.mqh>             // Стандартная библиотека