Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 848

 
arkadaşlar söyle! danışmanları her birinin kendi para birimi çiftiyle çalışması için kodlara nasıl yazabilirim ??? sihirbaz bir çift farklı sembol gösterdi, çalışmıyor.
 
logut :
arkadaşlar söyle! danışmanları her birinin kendi para birimi çiftiyle çalışması için kodlara nasıl yazabilirim ??? sihirbaz bir çift farklı sembol gösterdi, çalışmıyor.
Sihir, yalnızca bir sembolde birkaç "tüccar" varsa gereklidir ve sembolü kontrol etmek yeterlidir.
 
Merhaba. Bir danışman yazdım , test cihazında iyi sonuçlar gösteriyor. Hatasız derler. euro dolara sabitlendi.
Gerçek ticarette, işlemler açılmaz, işlem açma koşulları ortaya çıktığında bir mesaj görüntüler:
2015.02.11 14:03:03.656 '1435109': piyasa sl'de 0.01 EURUSD satın alma emri: 1.12697 tp: 1.13747 başarısız [Geçersiz S/L veya T/P]
Anladığım kadarıyla bu, dur ya da al işleminin doğru olmadığı anlamına geliyor. Durma ve alma verilen bir sipariş manuel olarak verilir. Medu fiyatı ve durdurma
ve fiyat ve alım mesafesi, yayılmadan birkaç kat daha fazladır. Tüm dur kalk hesaplamaları normalleştirilir. Anlamamamın sebebi ne olabilir, çözmeme yardım et.
İşte program:
int başlangıç()
{
//------------------------------------------------ ------------------------------------------------

if (Sipariş Toplamı()>0)
dönüş;
double monymax8=Yüksek[ArrayMaximum(Yüksek,3,0)];
if (Program OrderSend işlevine ulaştığı için nedeni bu olmadığı için koşulu kaldırdım)

{ double stop_sell8=monymax8+Puan;
double STOP_S8=NormalizeDouble(stop_sell8,Rakamlar);
double profit_sell8=Teklif-(stop_sell8-Bid)*4-(Ask-Bid);
double PROFIT_S8=NormalizeDouble(profit_sell8,Rakamlar);
double my_lot8=AccountBalance()/100/((stop_sell8-Bid)*MarketInfo(Symbol(),MODE_TICKVALUE))/100000;
double LOT8=NormalizeDouble(my_lot8,2);
OrderSend(Symbol(),OP_SELL,LOT8,Bid,2,STOP_S8,PROFIT_S8);
}
//------------------------------------------------ ------------------------------------------------
dönüş;
}

 
Rogoza :
Merhaba. Bir danışman yazdım, test cihazında iyi sonuçlar gösteriyor. Hatasız derler. euro dolara sabitlendi.
Gerçek ticarette, işlemler açılmaz, işlem açma koşulları ortaya çıktığında bir mesaj görüntüler:
2015.02.11 14:03:03.656 '1435109': piyasa sl'de 0.01 EURUSD satın alma emri: 1.12697 tp: 1.13747 başarısız oldu [Geçersiz S/L veya T/P]
Anladığım kadarıyla bu, dur ya da al işleminin doğru olmadığı anlamına geliyor. Verilen duraklar ve alımlar ile manuel bir sipariş verilir. Medu fiyatı ve durdurma
ve fiyat ve alım mesafesi, yayılmadan birkaç kat daha fazladır. Tüm dur kalk hesaplamaları normalleştirilir. Anlamamamın sebebi ne olabilir, çözmeme yardım et.
İşte program:
 int start() 
 {
 
//------------------------------------------------------------------------------------------------
if ( OrdersTotal ()> 0 )
   return ;
   
   double monymax8=High[ ArrayMaximum (High, 3 , 0 )];
   
       
         if (само условие я убрал так как не в нём причина, раз программа доходит до функции   OrderSend )
        {   double stop_sell8=monymax8+ Point ;
             double STOP_S8= NormalizeDouble (stop_sell8, Digits );
             double profit_sell8=Bid-(stop_sell8-Bid)* 4 -(Ask-Bid);
             double PROFIT_S8= NormalizeDouble (profit_sell8, Digits );
             double my_lot8=AccountBalance()/ 100 /((stop_sell8-Bid)*MarketInfo( Symbol (),MODE_TICKVALUE))/ 100000 ;
             double LOT8= NormalizeDouble (my_lot8, 2 );
           
             
           OrderSend ( Symbol (),OP_SELL,LOT8,Bid, 2 ,STOP_S8,PROFIT_S8);
            
                   
        }
      
 //------------------------------------------------------------------------------------------------
   return ;
 } 

Kodunuzu bu şekilde yapın. Bunun için bir SRC düğmesi var.

Açılmıyor çünkü bu tür hesaplarda önce stopsuz siparişler daha sonra OrderModify() açılır.

 
evillive :
Sihir, yalnızca bir sembolde birkaç "tüccar" varsa gereklidir ve sembolü kontrol etmek yeterlidir.
yani anladım. Şimdi Expert Advisor çoklu para birimini nasıl yapacağım sorusu hakkında endişeliyim ???
 
AlexeyVik :

Kodunuzu bu şekilde yapın. Bunun için bir SRC düğmesi var.

Açılmıyor çünkü bu tür hesaplarda önce stopsuz siparişler daha sonra OrderModify() açılır.

Çok teşekkür ederim! Kodu yeniden yazacağım.
 
logut :
yani anladım. Şimdi Expert Advisor çoklu para birimini nasıl yapacağım sorusu hakkında endişeliyim ???
Kod tabanını açın, orada çoklu para birimi değişimi bulun ve nasıl çalıştığını anlayın.
 

Genel olarak, sert bir şeyi körelttim ve nasıl yapacağımı bulamıyorum.

Satır1, satır2, satır3 vb. değişkenler vardır. for döngüsü operatörü aracılığıyla her değişkenin değerini hesaplamak istiyorum.

Satır değişkenleri doğru şekilde nasıl numaralandırılır? "Çizgi" + "i" olarak yapmaya çalıştım ama tabii ki saçma sapan çıkıyor.

 for ( int i= 1 ;i<= 111111111111 ;i++)
        {
             if ( "line" + "i">0 )counter++;
        }
 
Bir dizi satırı [] yapmak ve ardından bir döngü içinde yinelemek muhtemelen daha iyidir.
 

Neden o nesneyi göstermiyor? Solda https://docs.mql4.com/ru/constants/objectconstants/arrows code 3'ü gösteren bir Üçgen olmalı ve Wingdings code 241'in en üstüne bir ok görünür.

nesne

Program kodu ( ObjectSet(objName, OBJPROP_ARROWCODE , 3 ); )

 void f_ArrowClose(
                   datetime closeTime,
                   int action,           //íàïðàâëåíèå
                   double lots,
                   string symb,
                   double openPrice,
                   double closePrice,
                   double profit)
{
       color c;
       string op= "" ;
       if (action== 1 )
      {
         if (profit> 0 )c=Blue; else if (profit< 0 )c=Red; else c=Yellow;
         op= "cl_BUY" ;
      }
       else if (action==- 1 )
      {
         if (profit> 0 )c=Blue; else if (profit< 0 )c=Red; else c=Yellow;
         op= "cl_SELL" ;
      }
      
       string objName = StringConcatenate ( "#" , closeTime, " " , op, " " , lots, " " , symb, " at " , openPrice, " close at " , closePrice);
       ObjectCreate (objName, OBJ_ARROW , 0 , closeTime, closePrice);
      ObjectSet(objName, OBJPROP_COLOR , c);
      ObjectSet(objName, OBJPROP_ARROWCODE , 3 );
       //ObjectSetText(objName, StringConcatenate("Profit: ", profit));
}