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

 
harvest :
İş parçacığı olan beyler, açık bir pozisyonu başabaşa dönüştüren bir fonksiyon örneği verebilir (bir tik üzerinde çalışır), danışmanın bir sonu vardır, bu takip sadece kullanılana aktarma fonksiyonundan sonra başlar. Şimdiden teşekkürler.


Fragmana bakın - özellikle Yu.Dzyuban'dan bir trol kütüphanesi, trolün yalnızca kârdan olması koşuluyla, sorunu nasıl çözdüğünü, yani. trlinloss = false değişkeninin değeriyle, kayıp bölgesinde izlenip izlenmeyeceği. Trol işlevinizi bu örneğe göre düzenleyin ve bu kadar.

Dosyalar:
 

Arkadaşlar, klasik Martin neden çalışmıyor söyleyin bana? İşlemleri sadece alımlar için açar !!! Onunla zaten bir aydır sikişiyorum - sıfır duygu! Test cihazında iyi çalıştığında, ancak demoda değil. Bir başka ilginç şey - T / S ve T / P 1000 koydum - sadece alım için açılır ve 200 koydum - alım satım için ... kahretsin, fark nedir?!

işte kod plz yardım

 //+------------------------------------------------------------------+ 
//| StMartin.mq4 | 
//| Sergey Kodolov | 
//| 84232676421@mail.ru | 
//+------------------------------------------------------------------+ 
#property copyright "Sergey Kodolov" 
#property link "84232676421@mail.ru" 

     extern int TP = 1000 ; 
     extern int TS = 1000 ; 
     extern double lots = 0.1 ; 

     double volumz; 
     int total,ticket; 
     int slip = 3 ; 
     int Magic = 7 ; 

 


//+------------------------------------------------------------------+ 
//| expert initialization function | 
//+------------------------------------------------------------------+ 
int init() 
  { 
//---- 

   ticket = OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , "First order" ,Magic, 0 , Yellow ); //открываем первый ордер 
 
//---- 
   return ( 0 ); 
  } 
//+------------------------------------------------------------------+ 
//| expert deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- 

//---- 
   return ( 0 ); 
  } 
//+------------------------------------------------------------------+ 
//| expert start function | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 



OrderOpenFunction(); 

//---- 
   return ( 0 ); 
  } 
//+------------------------------------------------------------------+ 

void OrderOpenFunction()
{
   total = OrdersTotal ();
   if (total < 1 ) 
   { 
       OrderSelect ( 0 ,SELECT_BY_POS,MODE_HISTORY); 
      volumz = OrderLots (); 
       if ( OrderProfit ()< 0 ) 
      { 
         if ( OrderType () == OP_BUY) 
         { 
             double lot1 = volumz* 2 ; 
            ticket = OrderSend ( Symbol (),OP_SELL,lot1,Bid,slip,Ask+TS* Point ,Ask-TP* Point , 0 ,Magic, 0 , Red ); 
         } 
         if ( OrderType () == OP_SELL) 
         { 
             double lot2 = volumz* 2 ; 
            ticket = OrderSend ( Symbol (),OP_BUY,lot2,Ask,slip,Bid-TS* Point ,Bid+TP* Point , 0 ,Magic, 0 , Green ); 
         } 
      } 
       if ( OrderProfit ()> 0 ) 
      { 
         if ( OrderType () == OP_BUY) 
         { 
            ticket = OrderSend ( Symbol (),OP_BUY,lots,Ask,slip,Bid-TS* Point ,Bid+TP* Point , 0 ,Magic, 0 , Green ); 
         } 
         if ( OrderType () == OP_SELL) 
         { 
            ticket = OrderSend ( Symbol (),OP_SELL,lots,Bid,slip,Ask+TS* Point ,Ask-TP* Point , 0 ,Magic, 0 , Red ); 
         } 
      } 
   } 
}      
  
 
Alp :

O zaman daha da anlaşılmaz hale geliyor. Diyelim ki 1.000.000 (1kk) dolara euro aldım (broker bunu 100 ile çarpar, sonuç olarak işlem 100kk olur), grafik 100 puan yukarı sıçrar, hemen satarım ve 10.000 ile karamsarım. dolar, peki, bir komisyoncu komisyonu ve bunun sonucunda da net 6.000 dolar cebimde bir spread var. (Eh, satıştan sonra yine 100 puan düşeceği belli.) Bu saçmalık!!!! Hala düşebilir mi? Aksi takdirde, çok büyük oyuncular aslında hiçbir şey yapmadan milyarlarca dolar kazanırdı.


Sonra bilmiyorum..

Genel olarak, mesele muhtemelen şudur ki, gözle görülür bir fiyat hareketi için çok büyük miktarda, İYİ, çok büyük bir miktar satın almanız veya satmanız gerekir. Bu tür tutarlarda kredi kaldıracı benimki gibi 1/200 değil, mecazi olarak 1/2'dir. Broker komisyonu ve spread'i burada çok önemlidir. Bu tamamen kişisel. Böyle saçma sapan şeyler yazabilirim...

 
Bir şey beni şaşırtıyor. Kodu daha önce buraya gönderdim, bir hata oldu, düzeltmeme yardımcı oldular, Sepulca onun sayesinde tüm kod çalışıyor.Aşağıda başka bir satır, sipariş aynı siparişi seç, bir hata mı var? Bakabilirsen bir bak, sadece merak ediyorum.
 for (  i= 0 ;i<= OrdersHistoryTotal ();i++){
     OrderSelect (i ,SELECT_BY_POS,MODE_HISTORY);
     if ( OrderMagicNumber ( )== magic) { if ( OrderSymbol ()== Symbol ()) {





 current = OrderOpenTime ();   Alert ( " current = OrderOpenTime(); " ,  current); Alert ( " max " , max );
      
       if (current > max) 
      {                    
         max = current;      
         ticket = OrderTicket ();   Alert ( " ticket = OrderTicket();  " , ticket );
      }}}}


       if (ticket>- 1 ){
       OrderSelect ( ticket,SELECT_BY_TICKET,MODE_HISTORY); Alert ( "SELL Select error HISTORYticket " , GetLastError ( )  ) ;
Dimka-novitsek :

Sen nesin! Neden? Arama sırasında açık emir yoktu! Belki anlamadım?

Ve numaralandırma döngüsü de tarih oldu! İçinde bir int bilet değişkeni atadığım yer

Ve yemin ederim, üzgünüm, bu yüzden 2012.02.04 11:28:47 2011.12.06 16:35 antibes EURUSD,M30: Uyarı: SATIŞ Select error HISTORYticket 4105

MODE_HISTORY'den MODE_TRADES'e ne zaman gelir?

Ve en önemlisi, sonuçta, ben de aynı sırayı seçiyorum, ayrıca bir sipariş seçimi yardımıyla tarihte de ve ilk etapta seçiliyor, aksi takdirde onunla çalışamazdım !! Mantık yok !!!!!! Şok oldum..

 
Böyle bir danışmanı veya senaryoyu nerede arayacağımı söyler misiniz... Fiyatın her iki tarafında, fiyattan 5-7p uzaklıkta bir grup sipariş (9-11 adet) yer alır. operasyonları için zaman kesinlikle sınırlıdır. bu konuda çok sık siparişler takılmaz ve silinir. sabahın erken saatlerinde sipariş verme zamanı, kural olarak, piyasa sert bir şekilde düzleşir. Fiyat, emir gruplarından birine yaklaşırken, ikinci emir grubunun fiyatı takip etmesini isterim. başka bir deyişle, TP ve SL ile bekleyen siparişlerin izine ihtiyacınız var. mümkün mü?? şimdiden çok teşekkür ederim.
 

Yardıma ihtiyacınız var!

EA'da aşağıdaki bloğa sahibim (Olay sayacı):

if (isCloseLastPosByStop()==True) //Son sipariş Stop tarafından kapatılmışsa

{
N=N+1;
Uyarı (N, "geyik");
} başka N=0;

SORU: Bilgileri ekranda görüntülemek yerine bir dosyaya (excel) nasıl veri yazılır?

 

Tünaydın

bana okların neden çizilmediğini söyle, kod:

ObjectCreate("miniDown", OBJ_ARROW , 0, Zaman[1], Aç[1]);
ObjectSet("miniDown", OBJPROP_ARROWCODE, 241);
ObjectSet("miniDown", OBJPROP_COLOR, Sarı);

 

EURUSD = 1.44757, GBPUSD = 1.63366 diyelim, birbirlerine yakın olduklarından emin olmanız gerekiyor.

Açıklamama izin ver:

a=GBPUSD/ EURUSD =1.12855336874901 yaklaşık 1.12855,

onlar. anlaşmanın yaklaşık olarak eşit olması için bir para birimi satın almak/satmak istersem, o zaman

EURUSD*a almam/satmam gerekiyor ama böyle bir lot yok, bu yüzden sorum nasıl uygulanır, lot nasıl hesaplanır?

sorunun özünü anlayan yardım etsin.

 
TG :
Lütfen açık pozisyonları, yani öz sermayeyi dikkate alarak izin verilen maksimum lotu hesaplama işlevini paylaşın. aksi takdirde standart olan riski dikkate alır, ancak anlaşmalar varsa, açmak için yeterli para yoktur.

Bir keresinde özel bir danışman için yazmıştım:

 //+----------------------------------------------------------------------------+
double CorrectLots( double lt, int Part= 2 ) {
   double ltcorr, Money, MoneyCorr;
   double dig      = MarketInfo ( Symbol (),MODE_DIGITS);
   double MaxLot   = MarketInfo ( Symbol (),MODE_MAXLOT);
   double MinLot   = MarketInfo ( Symbol (),MODE_MINLOT);
   double StpLot   = MarketInfo ( Symbol (),MODE_LOTSTEP);
   double OneLot   = MarketInfo ( Symbol (),MODE_MARGINREQUIRED);
   double TradeMrg = NormalizeDouble ( AccountFreeMargin ()/Part,dig);     // Свободные средства, разрешенные к торговле
   
   lt= MathAbs (lt);
   ltcorr=lt;                                       // Зададим начальное значением ltcorr равным значению lt
   if (lt>=MaxLot) ltcorr=MaxLot;                   // Проверим превышение допустимых ...
   if (lt<=MinLot) ltcorr=MinLot;                   // ... значений лота
   Money=lt*OneLot;                                 // Вычисляем стоимость открываемой позы
   if (Money<TradeMrg) return (ltcorr);             // Если свободных средств больше, чем цена позиции -  возвращаем неизменённый лот
   else if (Money>=TradeMrg) {                     // Если цена позиции равна или больше, чем есть свободных средств, то ...
      ltcorr= MathAbs ( MathFloor (TradeMrg/OneLot/StpLot)*StpLot);         // ... рассчитаем допустимый лот
      MoneyCorr=ltcorr*OneLot;                      
       Print ( "Func CorrectLots: лот " ,lt, " скорректирован до " , DoubleToStr (ltcorr, 2 ),
             " Стоимость до корректировки = " , DoubleToStr (Money,dig),
             " Стоимость после корректировки = " , DoubleToStr (MoneyCorr,dig)
            ); 
       return (ltcorr);                                                   // ... и вернём его значение
      }
   Print ( "Func CorrectLots: лот вернули без изменений" );
   return (ltcorr);                                 // Возврат изначального лота в непредусмотренных случаях с сообщением
}
//+----------------------------------------------------------------------------+

Partiyi ayarlamak için, lt parametresi olarak pozisyon açmak istediğiniz lotu ve Part parametresi yerine - alım satımda kullanılan ücretsiz fonların bölüneceği sayıyı girerek fonksiyonu çağırmanız gerekir. Onlar. serbest marjın sadece yarısını takas etmek için, Bölüm 2, üçte biri ise 3, çeyrek - 4 vb. olmalıdır.

double Lot=CorrectLots( 0.1 , 2 );

Fonksiyonu çağırdıktan sonra, OrderSend() fonksiyonunun bir parametresi olarak Lot'u girin;

İşlev, Expert Advisor'daki lotları sert bir martin ile mükemmel şekilde sınırladı ve birleştirmeye izin vermedi. Gerçek ve karlılık azaldı...

 
Lütfen önceki soruma cevap verin, neyin yanlış olduğunu anlamıyorum =(