[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 454

 
smart :


Şablonda hangi göstergelerin olduğunu nasıl öğrenebilirim? Eski şablonu koydum, ancak tüm göstergeler görüntülenmiyor. Şablonda yer alan göstergelerin adlarını unuttum. Teşekkür ederim!


\templates\ klasörünü açın, şablonunuzu arayın, not defterinde açın, <windows> etiketini arayın ve hangi göstergelerin hangi parametrelerle dolu olduğunu görün.
 
tol64 :

20.06.2011 22:02

Herkese merhaba!

Böyle bir soru, neden programı puan cinsinden sıralamanın kârını belirlemeye zorlayamıyorum. Birinin ipliğine yardım et

Tüm siparişler arasında dolaşın.

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

OrderSelect()'i kullanarak belirli kriterlere göre ihtiyacınız olanı seçin. Ardından, OrderProfit() karını talep edersiniz. Saf paradır. Ve paragraflarda şöyle bir şeye ihtiyacınız var:

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots();

Her ihtimale karşı kontrol edin.)))

Teşekkürler, deneyeceğim
 

Sipariş yorumundan bilgi yazma ve okuma. Sipariş Yorumu() .

Emir açarken bakiyeyi ve Zarar Durdurma seviyesini yoruma yazarım. Bir sipariş açarken günlüğe bakarım. Her şey yolunda.




Bakiye 10000.00 . Zararı Durdur 1.67740 . Toplam karakter sayısı 15 .
Ardından string fonksiyonlarını kullanarak istenilen karakterleri seçip bir csv dosyasına yazıyorum. Ama bu sorunla karşılaştım. Stoploss vurulursa, bu [sl] karakterleri yorumun sonuna eklenir.


Ve karakter sayısı artık 15 değil 19'dur . Gerçek şu ki, kayıttan önce mevcut dengede kaç karakter olduğunu ve fiyatta kaç karakter olduğunu kontrol ediyorum. Bu, daha sonra kaç tane ve hangi işaretten almam gerektiğini belirlediğim değişkenlere atanır. Ama bu [sl] bunu yapmamı engelliyor. Sonuçta, fiyatta 7 karakter varsa, dosyaya 1.67740 değil, 740 yazılır. Sorunu nasıl çözeceğimi anlayamıyorum.)) Lütfen yardım edin.
 
En kolay yol, hemen yoruma yazmaktır. Yani veriler arasına ayırıcılar koymaktır. O zaman dizenin uzunluğu önemli olmayacak, sadece sınırlayıcılar arasındaki alt dizeleri çekin.
 
granit77 :
En kolay yol, hemen yoruma yazmaktır. Yani veriler arasına ayırıcılar koymaktır. O zaman dizenin uzunluğu önemli olmayacak, sadece sınırlayıcılar arasındaki alt dizeleri çekin.


Biraz önce bana bu basit seçenek sunuldu:

 string yorum = OrderComment();
yorum = StringSubstr(yorum, 0, 15); // sağa kırpıldı

Seçenek basit ama bunda da zorlandım ama karar verdim. )

Ama ya her şey bir kerede doğru yazılırsa, [sl] karakterleri eklenmez mi? Sakıncası yoksa, bir sipariş yorumundan bir alt dize çıkarmaya ilişkin küçük bir örnek alabilir miyim?

 
tol64 :


Biraz önce bana bu basit seçenek sunuldu:

Seçenek basit ama bunda da zorlandım ama karar verdim. )

Ama ya her şey bir kerede doğru yazılırsa, [sl] karakterleri eklenmez mi? Sakıncası yoksa, bir sipariş yorumundan bir alt dize çıkarmaya ilişkin küçük bir örnek alabilir miyim?

Kendinizin eklenmesine izin verin. Verilerinizi çıkarmak istiyorsunuz ama oraya ne ekleniyor ve satır ne kadar uzun diye endişelenmenize gerek yok.

   string _comment= "10000.00" + "$" + "1.67740" + "#" ; //строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring= StringLen (_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                       //извлекаемые подстроки
   delim1= StringFind ( _comment, "$" , 0 );         //определяем позиции разделителей в строке _comment
   delim2= StringFind ( _comment, "#" , 0 );         //определяем позиции разделителей в строке _comment 
   balans   =   StringSubstr ( _comment, 0 , delim1);                 //извлекли строку баланс
   stoploss =   StringSubstr ( _comment,delim1+ 1 , delim2-delim1- 1 ); //извлекли строку стоплосс 
   Comment ( "|" ,balans, "|" ,stoploss, "|" ); //проверка 
 
Hepinize iyi günler. İki farklı bilgisayarın aynı hesaba bağlanabildiği ve hatta bu hesapta aynı anda işlem yapabildiği komik bir durumla karşılaştım. Birisi bana uzak bir bilgisayarı kontrol etmenin, örneğin harici değişkenleri değiştirmenin veya en azından danışmanı askıya almanın mümkün olup olmadığını söyleyebilir mi? Şimdiden teşekkürler, çünkü evde terminalin kontrolünü alamadığımda oldukça garip bir durumla karşılaştım (örneğin kendim işteyim).
 
granit77 :
Kendinizin eklenmesine izin verin. Verilerinizi çıkarmak istiyorsunuz ama oraya ne ekleniyor ve satır ne kadar uzun diye endişelenmenize gerek yok.


)) Teşekkürler. Harika bir örnek! Her şey yarım kelimeden açıktır. Bazen çok eksik olan tam da bu tür örneklerdir.
 
snail09 :

Evet kesinlikle yakıyor. Herkes sadece... sorularınızı yanıtlıyor. Belki de özellikle çok farklı fikirlisiniz ?

Benim için, birisi trend çizgisinin kesişimini fiyata göre nasıl izleyeceğini (düz bir çizgi noktasına ait) yanıtladıysa, bir ipucu bile yeterli olur mu? Hemen teşekkür ediyorum, çünkü yakın gelecekte bir cevap beklemiyorum. Siz, Zvezda, bir fludersiniz, beni affedin moderatörler...


Ben sihirbaz değilim, ilk defa buradayım. sekiz))))
 
peshihod :

Pratikten yoksunsun. Programınızı başlatmak imkansız, çalışmıyor. Kısır döngü: çalışma seçeneği yok-> beceri yok-> çalışma seçeneği yok.

düşünmek lazım... :-/


Konunun devamında.

Öğrenmek için pratik gerekir.

Ticaret terminalinde aşağıdakileri yapın:
1. Deneme hesabı açılmalıdır.
Hesap verilerini işlem terminaline girin: Dosya->Giriş->...
2.Açık bir grafik kullanın veya yeni bir tane açın: Dosya->Yeni_grafik->...
3. Maksimum değeri şurada ayarlayın: Araçlar->Ayarlar->Çizelgeler->Max.bars_history->250000
4. Dakika zaman çerçevesini ayarlayın: Grafikler ->Dönem->M1_One_minute
5.Güncelleme yapın: Grafikler->Güncelle
6.Açık strateji test cihazı: Görünüm->Strategy_tester
Diğer tüm pencereleri kapatın (simge durumuna küçültün), bir pencereyi grafikle ve bir pencereyi test cihazıyla bırakın.
------------------
Ayarlarda test cihazında ayrıca:
7.Sembol: Tablosu açık olan sembolü seçin.
8.Model:Açılış fiyatlarında(.....)
<<<Programda OrderSend() fonksiyonu olmadığı sürece bu model kullanılmalıdır.>>>
9.Kullanım tarihi: kutuyu işaretleyin.
Tarih: _Başlangıç:<Dün(Cmts ve Paz hariç)>, _to:Bugün
10.Görselleştirme: varsa işareti kaldırın.
11. Dönem: M1
12.Optimizasyon: varsa onay işaretini kaldırın.
---------------------
Ardından, MetaEditor'u açın:
13.Menüdeki ticaret terminalinde: Araçlar->Editor_MetaQuotes_Language
14. Bir program yazıyoruz, örneğin:
//=====================

int i;
int const = 5 ;
int Celoe, Ostatok;
bool flag_Odin_Raz= true ;




int start()
{

if (flag_Odin_Raz== true )
{
//-------------
i= 0 ;
while (i< 22 )
   {
   Celoe=i/ const ;
   Ostatok=MathMod(i, const );
   Print( "При i=" , i, " Celoe=" , Celoe, " Ostatok=" , Ostatok);
   i=i+ 1 ;
   }
//-------------
flag_Odin_Raz= false ;
}
return ( 0 );
}

//==============================

15. MetaEditor menüsünde: File->Save_as : dosya adını ayarlayın, .mq4 uzantısını kaydedin, Klasör 'uzman' olmalıdır.
16. MetaEditor menüsünde: Dosya->Derleme
------------------------------------
Ayarlarda test cihazında ayrıca:
17.Advisor: program dosyasının adını bulun ve seçin.
18.Bir fare tıklamasıyla 'Başlat' düğmesine basın.
19. Test cihazında->günlük
Print() mesajlarına göre programın çalışmasının sonucunu görüyoruz.
--------------------------------------------
Daha iyi görüntüleme için:
20. Günlükten herhangi bir satırda, sağ tıklayın-> Aç
Bu, günlükler klasörünü herhangi bir metin düzenleyici, Not Defteri, Word vb. ile açılabilen bir *.log dosyasıyla açacaktır.

not
Dosya çok büyükse ve hiçbir metin düzenleyici açamıyorsa, Windows araçlarını kullanarak bu dosyayı silmeli ve işlem terminalinden 'Başlat' düğmesiyle programı yeniden başlatmalısınız. Tester klasörü: "...\Install_Dir\tester\logs", başka biriyle karıştırılmamalıdır: "...\Install_Dir\logs"

PPS
Nasıl programlanacağını öğrenmek için, gerekli "program" eylemlerinin (bir kişi için sindirilebilir) metinsel olarak yazılmasını, bir bilgisayar tarafından anlaşılabilir bir makine komutları diline dönüştüren bir programlama dili derleyicisine ihtiyacınız vardır. Pratik yapmadan öğrenmek imkansızdır. Mql4 ayrı programlar oluşturmaz, *.mq4, program kabuğundan başlatılan *.ex4'e dönüşür.
*.ex4 doğrudan çalıştırılamaz, yukarıda açıklanan algoritma bu noktayı atlamanıza izin verir.