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

 

Merhaba, lütfen bana kodun burada olduğunu söyleyin


 OrderSelect ( OrdersHistoryTotal ()- 1 , SELECT_BY_POS, MODE_HISTORY); //выбрать последний ордер
if ( OrderType ()==OP_BUY||OP_SELL)
 {
 if ( OrderMagicNumber ()== 1 )
  {
   if ( OrderProfit ()< 0 )

   {

bu da tarihteki son siparişi negatif kârla seçecek.

3 siparişin aynı anda kapanması gibi bir durum var, son 3 siparişin aynı anda kapandığını tam olarak nasıl anlayabilirim?

Bir for döngüsü yapmaya çalıştım, ancak geçmişte zararla kapatılan tüm siparişleri buluyor ve aynı anda kaç tanesinin kapatıldığına bağlı olarak yalnızca sonuncusuna veya sonuncusuna ihtiyacım var.

 
BruDer :

arama cevap bulamadı

komut dosyasından grafikte hangi göstergelerin olduğunu, hangi parametreler ve göstergelerin, hangi alt pencerelerde bulunduğunu nasıl görebilirim?

Teşekkür ederim


imkanı yok.
 

vik-777 :

son 3'ün aynı anda tam olarak neyi kapattığını nasıl anlayabilirim?

SiparişKapatZamanı()
 
vik-777 :

Merhaba, lütfen bana kodun burada olduğunu söyle


bu da tarihteki son siparişi negatif kârla seçecek.

3 siparişin aynı anda kapanması gibi bir durum var, son 3 siparişin aynı anda kapandığını tam olarak nasıl anlayabilirim?

Bir for döngüsü yapmaya çalıştım, ancak geçmişte zararla kapatılan tüm siparişleri buluyor ve aynı anda kaç tanesinin kapatıldığına bağlı olarak yalnızca sonuncusuna veya sonuncusuna ihtiyacım var.




Son kapatılanı alın, OrderCloseTime() kullanarak kapanış saatini bir önceki kapanan ile karşılaştırın, eğer aynıysa, daha sonra önceki kapatılan siparişinizin kapanış saati ile karşılaştırın... bunun gibi bir şey, elbette, tüm bunlar bir döngü içindedir - son kapatılandan birinciye, sırayla gidin ve siparişlerin kapanış zamanlarını karşılaştırın... devamı - önceden bildiğiniz , aynı anda kapandıkları son siparişlerin kapanış zamanlarını yazdırın (göre Size göre), diyelim ki üç sipariş, sizin anlayışınızla “aynı anda”, yani farklı olması mümkün. anladığım kadarıyla, siparişleri kapatmak için - her durumda, sıra kapanır, yani. gerçekte, örneğin, aynı anda üç siparişin kapanış zamanı aynı olamaz - Print() kullanarak kendiniz yazdırırsınız ve üç EŞ ZAMANLI siparişinizin değerlerine bakarsınız - onların OrderCloseTime( ) karakteristik, yani Aynı anda kapatıldığı düşünüldüğünde, birkaç emrin kapanış süresinin küçük bir miktar sapması olan EŞ ZAMANLI kapatma kavramının tanıtılması gerekebilir. Buradan zaten ve "dans et" - kendini dene, bak.
 

Salonun yardımını alıyorum.

OrderSelect() içinde bir koşul nasıl yazılır:

if(sipariş açılış günü != bugün)ticket=OrderTicket();

 
if(TimeDay(OrderOpenTime())!=TimeDay(CurrentTime()))ticket=OrderTicket();
 
ikatsko :

UZMAN ÇALIŞMASI SIRASINDA KARLI UZUN POZİSYONLARIN SAYISI İLE KARLI KISA Pozisyonların SAYISI AYRI NASIL SAYILIR?

Strateji aşağıdaki gibi olmalıdır: Uzman Danışmanın başlangıcından bu yana (veya daha iyisi, hesabın tüm geçmişi için) kârlı uzun pozisyonların sayısı kısa olanlardan fazlaysa, o zaman sadece açık uzun pozisyonlara izin verilir. Ve tam tersi.

Danışman tarafından kapatılırsa belirtilen işlemlerin nasıl hesaplanacağı açıktır: kapalı - sayılır. Ancak pozisyon TP veya SL tarafından kapatılırsa, o zaman ...?

Belki birinin hazır bir fonksiyon kodu vardır?

Pekala, kapalı pozisyonlar için bir döngüde, kapanış fiyatlarını ve alım ve duruş fiyatlarını karşılaştırın:

OrderTakeProfit(); OrderStopLoss(); SiparişKapatFiyat();

OP_BUY ve OP_SELL'i seçmek ve zarar eden ve karlı Alımların ve aynı Satışların sayısını ayrı dört değişkene yazmak daha da kolay

if (OrderProfit()+OrderSwap()+OrderCommission()>0) { /* pozisyon karlı */ }
else { /* pozisyon kârsız */ }

 
Teşekkür ederim!
 

Her şeye baktı... Her şeyi yaptı... Pozisyon açmıyor, o kadar! Düzenli olarak kapanıyor ama hiçbir şekilde açılmıyor ... Ne yapmalı - Asla bilemeyeceğim! Programda bir söve bulabilen var mı?

 
//+------------------------------------------------------------------+
//|                                                     DOKTRADE.mq4 |
//|                                                DOKSTER@YANDEX.RU |
//|                                                DOKSTER@YANDEX.RU |
//+------------------------------------------------------------------+
#property copyright "DOKSTER@YANDEX.RU"
#property link      "DOKSTER@YANDEX.RU"

   extern double LOT = 0.01;   // LOTS
   extern double KOF = 2;
   extern double SAF = 5;
   extern int    FRC = 144;
   extern double STL = 100;
   extern double TPF = 100;
   
   int start()
     
    { 


int CNT;

int DIG;

int TOTAL;
int SPREAD;

double SPR;
double SPRW;

double FRCU;
double FRCD;

double EMAH;
double EMAM;
double EMAL;

double OPEN;
double CLOSE;

double DFB;
double DFS;

double STLW = STL*Point;
double TPFW = TPF*Point;

double SAFW = SAF*Point;

EMAH = iMA(NULL,0,34,8,MODE_SMA,PRICE_HIGH,1);
EMAM = iMA(NULL,0,34,8,MODE_SMA,PRICE_MEDIAN,1);
EMAL = iMA(NULL,0,34,8,MODE_SMA,PRICE_LOW,1);

OPEN = iOpen(NULL,0,1);
CLOSE = iClose(NULL,0,1);

FRCU = High[iHighest(NULL,0,MODE_HIGH,FRC,1)];
FRCD = Low[iLowest(NULL,0,MODE_LOW,FRC,1)];

DFB = (CLOSE-FRCD);
DFS = (FRCU-CLOSE);

SPR = MarketInfo(Symbol(),MODE_SPREAD);
SPRW = (SPR*Point);

DIG = MarketInfo(Symbol(),MODE_DIGITS);

TOTAL = OrdersTotal();


if(TOTAL<1)

 { if (OPEN<EMAH&&CLOSE>EMAH)
   
   OrderSend(Symbol(),OP_BUY,LOT,Ask,3,0,0,"DOKTRADE",15775,0,Green);
  
 
   if (OPEN>EMAL&&CLOSE<EMAL)
 
   OrderSend(Symbol(),OP_SELL,LOT,Bid,3,0,0,"DOKTRADE",15885,0,Red);
  
  return(0);
 
    }
    
           
      
  for(CNT=0;CNT<TOTAL;CNT++)    
  
  {
      
  OrderSelect(CNT,SELECT_BY_POS,MODE_TRADES);
  
  {
  
  if (OrderType()==OP_BUY && OrderSymbol()==Symbol())   
                                             
      {
      
       if (OPEN>EMAL&&CLOSE<EMAL)    
     
        OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
        
         if (OPEN>EMAM&&CLOSE>EMAM)
          
           OrderModify(OrderTicket(),OrderOpenPrice(),FRCD-SAFW,CLOSE+DFB,Green);
        
        return(0);
        
        }
        
  if (OrderType()==OP_SELL && OrderSymbol()==Symbol())
        
      {
       
         if (OPEN<EMAH&&CLOSE>EMAH)
         
         OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);
         
          if (OPEN<EMAM&&CLOSE<EMAM)
           
           OrderModify(OrderTicket(),OrderOpenPrice(),FRCU+(SAFW+SPRW),CLOSE-DFS,Red);
       
         return(0);
         
         }
          }
           }
            }