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

 
Pacman :

Soruyu çoğalttığım için özür dilerim, ancak çözene kadar aşağıdaki örnekleri çalıştıramam.

Lütfen çözmeme yardım et.

Bir sipariş açmak için basit bir komut dosyası yazdı (MQL4 eğitiminden).

Bu örnekte 4 karakterli takımlar için kod verilmiştir.

Noktadan sonra 5 rakam olan bir şirkette hesabım var.

Lütfen 5 karakterlik kodu nasıl yeniden oluşturacağınızı doğru bir şekilde yazın ve komut dosyasını çalıştırırken neden 4109 (ticarete izin verilmiyor) hatası veriyor?

 int start()                                   // Спец. функция start()
  {                                           // Открытие BUY
   OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 0 * Point ,Bid+ 15 0 * Point );
   Alert ( GetLastError ());
   return ;                                   // Выход из start()
  }

Sadece mutlaka işe yarayacağı anlamına gelmez. DC'nizin durma seviyesine göre durakların boyutlarını ve kabul edilebilirliğini kontrol etmeniz gerekir.

ERR_TRADE_NOT_ALLOWED 4109 Ticarete izin verilmez. Expert Advisor'ın özelliklerinde "Uzman Danışmanın işlem yapmasına izin ver" seçeneğinin etkinleştirilmesi gerekmektedir.
 
artmedia70 :

Sadece mutlaka işe yarayacağı anlamına gelmez. DC'nizin durma seviyesine göre durakların boyutlarını ve kabul edilebilirliğini kontrol etmeniz gerekir.

ERR_TRADE_NOT_ALLOWED 4109 Ticarete izin verilmez. Expert Advisor'ın özelliklerinde "Uzman Danışmanın işlem yapmasına izin ver" seçeneğinin etkinleştirilmesi gerekmektedir.

Çok teşekkürler!

Danışmanın ticaret yapmasına izin vermek gerekliydi)

 

Hepinize iyi günler.

Afedersiniz. soru daha önce sorulsaydı, ancak 540 sayfa çevrildiyse.

Böyle bir sorun. MT4'te aynı fiyata sahip siparişler çakışıyor ve yalnızca bir sipariş görülüyor. MT4'te, örneğin grafikteki iki siparişin üst üste gelmeden yan yana görüntülenmesi için herhangi bir ayar var mı? Böyle bir ayar yoksa böyle bir fonksiyonla tablo veya grafik oluşturulabilir mi?

 
pyrsikov :

Hepinize iyi günler.

Afedersiniz. soru daha önce sorulsaydı, ancak 540 sayfa çevrildiyse.

Böyle bir sorun. MT4'te aynı fiyata sahip siparişler çakışıyor ve yalnızca bir sipariş görülüyor. MT4'te, örneğin grafikteki iki siparişin üst üste gelmeden yan yana görüntülenmesi için herhangi bir ayar var mı? Böyle bir ayar yoksa böyle bir fonksiyonla tablo veya grafik oluşturulabilir mi?

"Ticaret" sekmesine geçerseniz, Ctrl+t ve tüm açık pozisyonların bir tablosu altta görünür.
 

Lütfen bana yardım edin - Bir danışman yazıyorum - Kodu alt yapı olarak kullandım;

if (Altlığı çizin){
for(int x=0;x<7;x++)
for(int y=0;y<29;y++)
{
ObjectCreate("A_Fon"+x+y, OBJ_LABEL ,0,0,0,0,0);
ObjectSet("A_Fon"+x+y, OBJPROP_CORNER, Pencere konumu); // Pencere konumu // Txt_Location
ObjectSet("A_Fon"+x+y,OBJPROP_XDISTANCE,x*20+5);
ObjectSet("A_Fon"+x+y,OBJPROP_YDISTANCE,y*20+9);
ObjectSetText("A_Fon"+x+y,CharToStr(110),26,"Wingdings",WingColor);//Kırmızı);
}
if (Altlığı çiz==Yanlış)
{
for(int posp=1000;posp>0;posp--)
{
ObjectDelete("A_Fon"+posp);
ObjectDelete("A_Fon0"+posp);
ObjectDelete("A_Fon00");
}
}
}

Sonuç olarak, çizelgede çok sayıda nesne çizildiği için saçmaladım.

Lütfen bana metnin altındaki arka planı ayarlamak için normal kodu söyle.

 
7777877 :

İyi günler... FileIsEnding ve FileIsLineEnding işlevleriyle ilgili soru. FileIsEnding ve FileIsLineEnding işlevlerinin nasıl çalıştığını anlamak için aşağıdaki betiği yazdım:

Numarayı dosyaya yazdıktan sonra onaltılık biçimde bakarsanız şöyle yazılacaktır:

00000000: 31 2E 33 35 38 34 0D 0A | | 1.3584..

Her harf veya sayı 1 bayt veya 8 bit kaplar, son iki karakter denir - satır besleme ve satır başı otomatik olarak doldurulur, bu nedenle dosya boyutu 6 değil 8 bayttır.

Biraz değiştirilmiş komut dosyanızı çalıştırın ve imlecin nasıl hareket ettiğine dikkat edin (hatanın nerede oluştuğunu görebilmeniz için özel olarak dosya boyutundan daha büyük yineleme yapılmıştır.

 int start()                                                               //функция start
  {                                                                       //начало start
   double Timestart= GetTickCount ();                                       //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name= "Копия Запись чисел в файл.csv" ;                           //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                             //переменная: ошибка
   int handle= FileOpen (name, FILE_CSV | FILE_WRITE , ';' );                     //открываем заданный файл n записываем туда данные
   int запись= FileWrite (handle, DoubleToStr ( 1.3584 , 4 ));                   //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose (handle);                                                     //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle= FileOpen (name, FILE_CSV | FILE_READ , ';' );                         //открываем заданный файл
   int size= FileSize (handle);                                             //вычисляем размер заданного файла
   Print ( "Размер файла " ,name, " составил " ,size, " байт" );
   for ( int i= 0 ;i<=size;i++)
   {
   GetLastError ();
   bool pos= FileSeek (handle,i, SEEK_SET );                                 //смещаем от начала вправо указатель файла
   int pos1= FileTell (handle);
   double чтение= FileReadNumber (handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   h= FileIsEnding (handle);                                               //устанавливаем текущее значение переменной h
   h_l= FileIsLineEnding (handle);                                         //устанавливаем текущее значение переменной h_l
   error= GetLastError ();                                                 //значение ошибки, производимой функцией FileIsEnding
   if (error!= 0 ) Alert ( "Текущая ошибка " ,error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
//----------------------------------------------------------------------------------------- 3 -
   Print ( " Функция FileSeek вернула: " ,pos,
         " Указатель находится в позиции - " ,pos1,
           " Функция FileReadNumber(handle) вернула: " ,чтение); //печать сообщения 
   }
   FileClose (handle);                                                     //закрываем файл
//----------------------------------------------------------------------------------------- 4 -
   return ( 0 );                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -
 

Göstergede hata ayıklarken, fare kaydırma kullanılarak belirli çubuklardan elde edilen fiyat ve zaman değerlerinin bir dizisini Print üzerinden çıktı almak gerekir.

      price1 = iMA ( Symbol (),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack1+i);       // Цена в точке А
      price2 = iMA ( Symbol (),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack2+i);       // Цена в точке В
      time1 = iTime ( Symbol (), Period (),i_shiftBarsBack1 + i - 1 );                                               // Время в точке А
      time2 = iTime ( Symbol (), Period (),i_shiftBarsBack2 + i - 1 );                                               // Время в точке В

Bütün bunları alıyorum ama operatörün içinde:

 for (i = limit - 1 ;i > 0 ;i--)

Ardından, onlarla daha fazla çalışabilmem için fiyat ve zaman değerlerini dizilere sürüyorum:

      varsPrice1[i] = price1;                                                                         // Массив цен в точке А
      varsPrice2[i] = price2;                                                                         // Массив цен в точке В
      varsTime1[i] = time1;                                                                           // Массив времени в точке А
      varsTime2[i] = time2;                                                                           // Массив времени в точке В

Bundan hemen sonra zaten orada olanı yazdırmaya çalışıyorum:

       Print ( "i = " , i, " time1 = " , time1, " price1 = " , price1);
       Print ( "i = " , i, " time2 = " , time2, " price2 = " , price2);
       Print ( "i = " , i, " varsTime1[i] = " , varsTime1[i], " varsPrice1[i] = " , varsPrice1[i]);
       Print ( "i = " , i, " varsTime2[i] = " , varsTime2[i], " varsPrice2[i] = " , varsPrice2[i]);

Bu, uzman dergisinde basılan şeydir:

 2012.10 . 20 14 : 47 : 13      2010.08 . 10 02 : 58   AngleByTg GBPUSD,M5: i = 41 varsTime1[i] = 1281381900 varsPrice1[i] = 0
2012.10 . 20 14 : 47 : 13      2010.08 . 10 02 : 58   AngleByTg GBPUSD,M5: i = 41 time2 = 1281382200 price2 = 0
2012.10 . 20 14 : 47 : 13      2010.08 . 10 02 : 58   AngleByTg GBPUSD,M5: i = 41 time1 = 1281381900 price1 = 0
2012.10 . 20 14 : 47 : 13      2010.08 . 10 02 : 58   AngleByTg GBPUSD,M5: i = 42 varsAngle[i] = 0
2012.10 . 20 14 : 47 : 13      2010.08 . 10 02 : 58   AngleByTg GBPUSD,M5: i = 42 varsTime2[i] = 1281381900 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 45 varsTime2[i] = 1281381000 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 45 varsTime1[i] = 1281380700 varsPrice1[i] = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 45 time2 = 1281381000 price2 = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 45 time1 = 1281380700 price1 = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 46 varsAngle[i] = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 46 varsTime2[i] = 1281380700 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 46 varsTime1[i] = 1281380400 varsPrice1[i] = 0
2012.10 . 20 14 : 47 : 12      2010.08 . 10 02 : 56   AngleByTg GBPUSD,M5: i = 46 time2 = 1281380700 price2 = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 91 time1 = 1281366600 price1 = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 92 varsAngle[i] = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 92 varsTime2[i] = 1281366600 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 92 varsTime1[i] = 1281366300 varsPrice1[i] = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 92 time2 = 1281366600 price2 = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 92 time1 = 1281366300 price1 = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 93 varsAngle[i] = 0
2012.10 . 20 14 : 47 : 11      2010.08 . 10 02 : 54   AngleByTg GBPUSD,M5: i = 93 varsTime2[i] = 1281366300 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 45 varsAngle[i] = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 45 varsTime2[i] = 1281380700 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 45 varsTime1[i] = 1281380400 varsPrice1[i] = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 45 time2 = 1281380700 price2 = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 45 time1 = 1281380400 price1 = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 46 varsAngle[i] = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 46 varsTime2[i] = 1281380400 varsPrice2[i] = 0
2012.10 . 20 14 : 47 : 10      2010.08 . 10 02 : 52   AngleByTg GBPUSD,M5: i = 46 varsTime1[i] = 1281380100 varsPrice1[i] = 0
2012.10 . 20 14 : 47 : 09      2010.08 . 10 02 : 50   AngleByTg GBPUSD,M5: i = 49 varsTime1[i] = 1281379200 varsPrice1[i] = 0

Burada hem varsTime1[i] hem de varsTime2 [i] dizilerinin fiyat değerlerinin yanı sıra basitçe time1 ve time2 ticklerinden alınan fiyatların her zaman 0 olduğu açıkça görülmektedir. Ne öyle değil?

 
Vinin :

Tüm kodu verebilirmisin. Ve sonra sizin için neyin açık olduğunu düşünmek istemezsiniz.

Bunu düşünmek istemediğimi anlıyorum, ancak sorun sizin için açıksa en azından bir ipucu verebilir misiniz?
 
Merhaba forum insanları!
Beyler, bir sorum var - komut dosyalarına atanan "Kısayol Tuşları" nın hangi dosyada saklandığını kim bilebilir ??? Bu dosyayı zaten atanmış "Kısayol Tuşları" ile kaydetmek istiyorum, böylece terminali her yeniden kurduktan sonra, böyle bir ihtiyaç aniden ortaya çıkarsa, bu tuşları yeni bir şekilde atamayın ... ancak yalnızca dosya aktarıldı ve bu kadar ...
Hepinize şimdiden teşekkürler.
 
hoz :

Göstergede hata ayıklarken, fare kaydırma kullanılarak belirli çubuklardan elde edilen fiyat ve zaman değerlerinin bir dizisini Print üzerinden çıktı almak gerekir.

Bütün bunları alıyorum ama operatörün içinde:

Ardından, onlarla daha fazla çalışabilmem için fiyat ve zaman değerlerini dizilere sürüyorum:

Ondan hemen sonra zaten orada olanı yazdırmaya çalışıyorum:

Bu, uzman dergisinde basılan şeydir:

Burada hem varsTime1[i] hem de varsTime2 [i] dizilerinin fiyat değerlerinin yanı sıra basitçe time1 ve time2 ticklerinden alınan fiyatların her zaman 0 olduğu açıkça görülmektedir. Ne öyle değil?


i_maTF == Dönem() ??????,

i_maPeriod makul bir değer alıyor???

Belki i_maShiftByPrice ile ilgili bir sorun var???

Tam olarak söylemek zor.