MMA_Breakout_strategy_volume I (MM veya MF olmadan) - WhooDoo22 tarafından kodlanmıştır - sayfa 3

 
Neden başka bir sürüme geçmeden önce bu konunun konusu olan kodu düzeltmiyorsunuz? . . yapsaydın çok şey öğrenirdin.
 
Simon,


Başka bir nokta . . .

RE: Cilt I/II'nin ticaret kabiliyeti ve değeri hakkındaki düşüncelerimi doğrulamak için kodlama yöntemimin her şeyi bir araya getirebildiğim en hızlı yöntem olduğunu vurgulamak benim için önemli. Hayatımda her şeyi ilk seferde "doğru" kodlamak için ayıracak yeterli zamanım yok. Projelere genellikle aşamalar halinde başlarım. Örnek: Aşama 1. Tüm işlevsel temelleri kapatın, Aşama 2. Kodu temizleyin, 3. EA'nın dış görsel tarafına güzellik katın. Şu anda hala 1. Aşamada çalışıyorum. Bu EA'da tipik bir gönderme emrinden çok daha fazlası var, yakın sipariş EA. Test için çok zaman ve düşünce harcandı. Test, I. cildin evrimi üzerine geçilecektir. Onun benzersizliğini kabul ettiğinizden eminim.

Bununla birlikte, ilk OrderSend() işlevi için "topu yuvarlamak" için farklı bir seçenek düşünüyorum. Henüz gideceğim cadı yönünden emin değilim. Sonunda "if(OrdersHistoryTotal()==0){" koşulunu tamamen güvenilir bir koşulla değiştireceğim. Bunu biraz düşünmek için önemli bir noktaya değindin. Teşvikinizi takdir ediyorum.

Teşekkür ederim.

 
RaptorUK :

Değişken nedir i bunu yaptığınızda nasıl bir bilet numarası olabilir?

Şu anda 4 canlı işlemim var, bilet numaraları sıralı değil. . .

eşittir işareti, varilble'ı bir şeye değer yapmalıdır, ama nedir? Sanırım ne demek istediğini anladım, nasıl mümkün olabilir, ++ iyi bir soru
 
WhooDoo22 :
Simon,


Başka bir nokta . . .

RE: Cilt I/II'nin ticaret kabiliyeti ve değeri hakkındaki düşüncelerimi doğrulamak için kodlama yöntemimin her şeyi bir araya getirebildiğim en hızlı yöntem olduğunu vurgulamak benim için önemli. Hayatımda her şeyi ilk seferde "doğru" kodlamak için ayıracak yeterli zamanım yok.

En azından işlevsel olarak doğru çalışmasını sağlamalısınız. . . bu kod bundan çok çok uzakta. gerekir dedim. . . . bu yanlış, bir seçeneğiniz var, ST'yi çalıştırdığınızda ve Live veya Demo'da çalışmayacak koda sahip olduğunuzda kodunuzu yazmaya devam edebilirsiniz ve GB'larca hata alabilirsiniz. . . Eğer istersen.
 

Simon,

En azından, gerekir..

RE: Bir hedefe ulaşmanın ne kadar süreceği ile ilgilenmiyorum, proje tamamlanana kadar ilerlemeye devam ediyorum. Benim seçimim GB'larca hata yapmamak olurdu :) Kodlama akranlarımdan gelen yapıcı eleştirileri dinlemeyi ve sunulan kodlama sorunlarına yanıt vermeyi ve karşılıklı çözümler bulmayı tercih ederim. Bu çözümler, Cilt I/II için potansiyel olarak daha az hata üretebilir.

Teşekkür ederim.

 
WhooDoo22 :

Simon,

En azından, gerekir..

RE: Bir hedefe ulaşmanın ne kadar süreceği ile ilgilenmiyorum, proje tamamlanana kadar ilerlemeye devam ediyorum. Benim seçimim GB'larca hata yapmamak olurdu :) Kodlama akranlarımdan gelen yapıcı eleştirileri dinlemeyi ve sunulan kodlama sorunlarına yanıt vermeyi ve karşılıklı çözümler bulmayı tercih ederim. Bu çözümler, Cilt I/II için potansiyel olarak daha az hata üretebilir.

Teşekkür ederim.



RaptorUK'un orada verdiği, yapıcı eleştiriydi ve kodlarınıza karşılık gelen çözümlerdi ve hala öyle .
 

Simon, bu sorunu çözmek için bir Boolean değişkeni kullanacağım. Bu Boole koşulu, 2. aşamaya ulaşana kadar bu sorunu çözecek yaygın bir çözümdür. Daha sonra, ilk sipariş gönderme sinyaline kodlama stilimi yansıtan benzersiz bir koşul verebilirim. Girişiniz için teşekkür ederiz.

 
WhooDoo22 :

Simon, bu sorunu çözmek için bir Boolean değişkeni kullanacağım. Bu Boole koşulu, 2. aşamaya ulaşana kadar bu sorunu çözecek yaygın bir çözümdür. Daha sonra, ilk sipariş gönderme sinyaline kodlama stilimi yansıtan benzersiz bir koşul verebilirim. Girişiniz için teşekkür ederiz.

Hayır, olmayacak. . . kodlamanız anlamadığınızı gösteriyor, anlamazsanız düzeltemezsiniz.
 

Simon, anladığımı sanıyorum, neyi anlamadığımı düşünüyorsun?

Şimdiye kadar iki önemli şeyi tartıştık:

1. acil durum sl kod bloklarını düzeltin.

2. "if (OrdersHistoryTotal()==0{") mevcut koşulu kaldırın ve koşulu farklı bir koşulla değiştirin (şu anki çözümüm, sipariş sonlarını başlatmak için mevcut koşulu bir Boole koşuluyla değiştirmektir.).

 //example

if (x== false ){ OrderSend ()...; x= true ;}

/* now, x is true and the code block will not execute again. Of course, I would add code to save variables and if connection 
   is lost from the terminal server, all variables are saved. Simple.
   I understand the code is incorrect, but I wrote this for you to understand its concept, not a completely typed up code. */

Değişkenleri kaydetme fikri, sunucu bağlantısının kesilmesi için yaygın bir çözümdür ve ubzen tarafından önerilmiştir. Bu fikir için ona hak veriyorum.

Teşekkür ederim.

 
WhooDoo22 :

Simon, anladığıma inanıyorum, neyi anlamadığımı düşünüyorsun?

start() işlevinizdeki ilk satır bu . . .

   OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES);

. . . hangi bilet numarasını seçiyor? kuyu bileti bir ilk değişken ayarı olmadan bildirildi, bu nedenle 0 olacak, bu nedenle hemen bilet 0 öğesini seçmeye çalışıyorsunuz, bu bir hata üretecek, bu OrderSend() öğesinden dönüş değerini kontrol ederseniz, şunu görürsünüz: muhtemelen 4108 ERR_INVALID_TICKET hatası olabilir. . . OrderSend()'i nasıl doğru kullanacağınızı anladıysan bunu neden yapasın ki?


OrderHistoryTotal()'ı anlasaydın, onu senin kullandığın şekilde kullanmazdın ve öyle olduğunu söylemezdin. . . " yalnızca benzersiz bilet değişkeninin işlem geçmişini arama, "

{ } ayraçlarının nasıl çalıştığını anlasaydınız, gereksiz parantezler eklemezdiniz. . . hiçbir şey eklemezler, kodunuzu daha düzenli veya daha kolay okunmaz hale getirmezler.

 if (OrderType()==OP_BUY)                                                                     
      {
         {
         OrderModify(ticket, 0 ,OrderOpenPrice()- 5000 * Point , 0 , 0 ,Blue
         }
      }

ile değiştirilebilir. . .

 if (OrderType()==OP_BUY)  
   OrderModify(ticket, 0 ,OrderOpenPrice()- 5000 * Point , 0 , 0 ,Blue);

i değişkenini bir bilet numarası olarak kullanmak, bilet numaralarının Strateji Test Cihazı dışında, yani bir Demo veya Canlı hesapta nasıl çalıştığını anlamadığınızı gösterir. . .


Ticaret fonksiyonlarınızın çalışıp çalışmadığını kontrol etmiyorsunuz, kodunuzda bu çok önemlidir çünkü aşağıdakileri kullanırsınız. . .

ticket = OrderSend ( Symbol (),OP_BUY, 0.05 ,Ask, 30 , 0 , 0 , "" , 0 , 0 ,Blue);

. . . OrderSend() başarısız olursa, bilet = -1 olur, daha sonra kodunuzda bu değişkeni bilet numarası -1'e göre seçmek ve sipariş etmek için kullanmaya çalıştığınızda, açıkça başarısız olur. . .