[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 439

 
Bazen merak ediyorum - geliştiriciler neden terminalde herhangi bir saçmalık yerine sadece iki düğme yapmıyorlar: "kazan" ve "birleştir". Sorunlar büyüklük sırasına göre azaltılacaktır.
 
Necron >> :

Herkese nazik olun! Genel olarak, sorun aşağıdaki plandır. Üçlü lotlu bir pozisyon açmanız gereken bir TS vardır, bundan sonra her lota ayrı ayrı eşlik edilir (kendi TP'si, kapanış sinyali ile). Uygulama ile ilgileniyor. Aklıma şu yöntem geldi: üç geciktirici kullanın, biletlerini hatırlayın ve ardından her birini kendi durumuna göre ayrı ayrı seçip kapatın. Başka yollar var mı (veya daha uygun)?

not. Yanlış anlamayın, yaklaşık bir ay önce sırtlara ilk Uzman Danışmanımı yazdım =)))))

her sipariş için kendi yorumunuzu belirleyin ("lot_1", "lot_2"....), siparişleri yoruma göre tanıyın...

Anlamadıysan daha detaylı yaz...

 
StatBars >> :

her sipariş için kendi yorumunuzu belirleyin ("lot_1", "lot_2"....), siparişleri yoruma göre tanıyın...

Anlamadıysan daha detaylı yaz...

Teşekkürler Stat Barları! Ben sadece sihir seçimi ile yapmaya başladım. Sizce böyle mi görünecek? (İtiraf ediyorum, Uzman Danışmanlardan birinde benzer bir tane olduğunu hatırladım =)) O zaman en uygun seçenek hangisidir?

if ( (OrderSymbol() == Symbol()) &&
(StringSubstr(OrderComment(),0,0) == "lot_1") )

 
Necron >> :

Teşekkürler Stat Barları! Ben sadece sihir seçimi ile yapmaya başladım. Sizce böyle mi görünecek? (İtiraf ediyorum, Uzman Danışmanlardan birinde benzer bir tane olduğunu hatırladım =)) O zaman en uygun seçenek hangisidir?

if ( (OrderSymbol() == Symbol()) &&
(StringFind(OrderComment(),"lot_1") >= 0) )

Biraz düzeltildi.

Sihir ve sembol genellikle "benim" uzman siparişlerimi tanımlamak için kullanılır.

Geri kalan tüm bilgileri yorumlara ekledim.

Burada daha optimal bir şey olacağını söyleyemem, daha sonra siparişlerle ne yapacağınız ve 3 siparişin daha açılıp açılmayacağı belli değil ....

 
chief2000 >> :



Koşul karşılandığında her onayda tetiklenir. Sanırım kayınvalideniz için kodu elden geçiriyorsunuz? :)





Çok teşekkürler! Derlenen her şey çalışır, her tikte bip sesi çıkarır.

Henüz kayınvalidesi yok, ama bir şey olursa .., o zaman bu fikri hizmete alacağım)))

 

üzgünüm bir sorum var istemciyi programlı olarak nasıl çökertir.

ayrıştırma araştırmasında, derlemenin belirsizliğine rastladım. Şimdi soru nasıl kullanılacağıdır.

sistemi kırmak için bir seçenek olarak.

veya geri derlenmiş olarak asın.

 
StatBars >> :

Biraz düzeltildi.

"Benim" uzman siparişlerimi belirlemek için genellikle sihir ve sembol kullanırım.

Geri kalan tüm bilgileri yorumlara ekledim.

Burada daha optimal bir şey olacağını söyleyemem, daha sonra siparişlerle ne yapacağınız ve 3 siparişin daha açılıp açılmayacağı belli değil ....

Teşekkür ederim! Seçeneğiniz için danışmanda düzeltildi. Buraya bu mucizeyi ekleyeceğim ve ilk (az ya da çok) ciddi eserim olarak Kod Tabanında yayınlayacağım! =)) Danışman yazdığım sistemin adı Muteki, sadece biraz eklemelerimle (pozisyon yönetimi üzerine) . En azından tüm bu trend çizgilerini çizecek bir gösterge olması güzel =)))

Sadece başka bir soru vardı. Aynı anda üç pozisyon nasıl açılır (veya yaklaşık bir teklif) Aşağıdakileri yaptım. Bu doğru mu, yoksa başka yollar var mı? Ertelemeler işe yaramaz =(( Küçük bir mesafe bazen çok fazladır :(


if(b1==0 && !IsTradeContextBusy())
{
if(Low[0]<HHL_1 && Bid>=HHL_1 && trade_buy==true)
{
ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,slippage*PointX,sl_b,BuyTarget1,"lot_1_buy",Magic,0,Lime);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("lot_1_buy order opened : ",OrderOpenPrice());
b1=1;
}
else Print("Error opening BUY order : ",GetLastError());

return(0);
}
}

 
// ищем самый последний закрытый ордер
for ( i = OrdersHistoryTotal ( ) ; i > = 0 ; i - - ) {
   if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
     if ( OrderSymbol ( ) = = Symbol ( ) ) {
       if ( OrderMagicNumber ( ) = = 16384 ) {
         if ( OrderCloseTime ( ) ! = 0 ) {
           if ( OrderCloseTime ( ) > time ) {
          time = OrderCloseTime ( ) ;
          profit = OrderProfit ( ) ;
          
             //мартин
             if ( profit < = 0 ) Lots = OrderLots ( ) * 2 ;
             //----
            
            
           }
         }
       }
     }
   }
}
//-----

fikre göre, fonksiyon son kapatılan lotu arar, eğer kayıpsa, yeni bir anlaşma açma lotu ikiye katlanır.

pratik için, her yeni işlem, karlı bir işlem olup olmadığına bakılmaksızın, çift lot ile gelir.


soru: sorun ne?

 
Summer :

Bir işlevi yeniden çalıştığımı hatırlıyorum. İşte kod. Lotlar (sıraya göre) =getLots(), koeff= lot artış faktörü (varsayılan 2) Sadece on lota kadar (0,1'den) Test sırasında aldım =))))

double getLots() {

double minlot = MarketInfo(Symbol(), MODE_MINLOT);
double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
int round;
if(minlot==0.01)round=2;
if(minlot==0.1) round=1;
double koeff=2;
double result=Lots;

int total = OrdersHistoryTotal();
double spread = MarketInfo(Symbol(), MODE_SPREAD);

for (int i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderProfit() > 0)
{
result = Lots;

} else {
result = OrderLots() * koeff;

}
}
}
result = NormalizeDouble(result, round);
if (result > maxlot) {
result = maxlot;
}
if (result < minlot) {
result = minlot;
}
RefreshRates();
return(result);
}

 

bir yerde fonksiyonda bir hata var, ben bile bulamadım, orada ya ( ya da { ile

kodu ekledim.

Neden: