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

 
sergeev >> :

siparişleri açmak için işlevinizi buraya getirin.

int NewOrder(int Cmd,çift Parti)

{çift TP=0, TP2=0;

çift SL=0, SL2=0;

çift PR=0;

tarihsaat bitiş zamanı;


while(!IsTradeAllowed()) Sleep(100);

bitiş zamanı = TimeCurrent()+4*60*60;


if(Cmd == OP_BUYSTOP)

{

PR=ÜST+10*Puan;

PR=NormalizeÇift(PR,2);

if(Kar Al>0)

{

TP=PR+25*Puan;

}

if(Kaybı Durdur>0)

{

SL=PR-30*Nokta;

SL=NormalizeÇift(SL,2);

}

}

if(Cmd==OP_SELLSTOP)

{

PR=YİD-7*Puan;

PR=NormalizeÇift(PR,2);

if(Kar Al>0)

{

TP=PR-25*Nokta;

}

if(Kaybı Durdur>0)

{

SL=PR+30*Nokta;

SL=NormalizeÇift(SL,2);

}

}

if ((TOP-BOT)<115*Puan)

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,endtime,CLR_NONE);

başka

Print("TOP ve HERE arasındaki büyük fark: ",(TOP-BOT));

if(tic<0) Print("Açma sırası hatası: ",GetLastError());


dönüş(tik);

 
sanyooooook >> :

Sipariş nasıl kapatılır? kaybı durdur veya OrderClose() işleviyle

zararı durdur veya kar al.

 

Herkese merhaba .. Bir sorum var .. tamamlanan işlemlerle ilgili rapora nereden bakabilirim ... tüm çalışma süresi için toplam ... ??

 
sergeev >> :
В принципе можно искать ордера в истории и отсортировать их, затем узнать два последних закрытия. Но это вам надо пройтись по всем ордерам истории два раза.

OrderHistoryTotal(), MODE_HISTORY, OrderCloseTime()>0, OrderProfit() kullanın

Diğer bir seçenek - geçmişi iki kez taramamak için - açılan siparişlerin biletlerini hatırlamak ve ardından kârlarını belirlemek.

Biletleri tam olarak nasıl hatırlıyorsun? Ve nasıl anlaşılır: Bir bilete erişmek için bir sipariş seçmeniz gerekir ve onu seçmek için bileti bilmeniz gerekir...

 
just-me >> :

Biletleri tam olarak nasıl hatırlıyorsun? Ve nasıl anlaşılır: Bir bilete erişmek için bir sipariş seçmeniz gerekir ve onu seçmek için bileti bilmeniz gerekir...

bir sipariş seçmek için bileti bilmek gerekli değildir

 

Bir şekilde pazarlama bilgileri işleviyle kafam karıştı ve belirli bir lot büyüklüğüne sahip mevduat para biriminde bir enstrüman için doğru spread değerini hesaplayamıyorum. Doğru formülü önerebilir misiniz? Üstelik hem spot hem de CFD için gerekli...

 

Uzmanlara bir sorum var - danışmanı başlatırken alınan ilk fiyat değerini sabit yapmak mümkün mü?

Yani, Expert Advisor'ı başlattıysam ve o sırada fiyat Ask=1,4444 ise, Expert Advisor çalıştığı her zaman buna başvurabilmek için bu fiyatı sabit olarak kaydetmek istiyorum. Tek soru nasıl yapılır??? Sonuçta, Ask sürekli değişiyor ve kopyalama işlevini hiçbir yerde bulamadım.

 

global bir değişken veya sadece bir değişken yapın

ve onu başlangıç işlevine değil, init işlevine ekleyin

 int init ( )
   {
//----
   GlobalVariableSet ( "Price_Start" , Ask ) ;
//----
   return ( 0 ) ;
   }
 
Kesha_k85 >> :

Uzmanlara bir sorum var - danışmanı başlatırken alınan ilk fiyat değerini sabit yapmak mümkün mü?

Yani, Expert Advisor'ı başlattıysam ve o sırada fiyat Ask=1,4444 ise, Expert Advisor çalıştığı her zaman buna başvurabilmek için bu fiyatı sabit olarak kaydetmek istiyorum. Tek soru nasıl yapılır??? Sonuçta, Ask sürekli değişiyor ve kopyalama işlevini hiçbir yerde bulamadım.


Bir temadaki varyasyonlar.


 double Price_Start ;

int init ( )
 {
   Price_Start = Ask ;
   return ( 0 ) ;
 }


double Price_Start = 0 ;

int start ( )
 {
   if ( Price_Start < 0.001 ) Price_Start = Ask ;
   //....
 }
 
just-me писал(а) >>

Biletleri tam olarak nasıl hatırlıyorsun? Ve nasıl anlaşılır: Bir bilete erişmek için bir sipariş seçmeniz gerekir ve onu seçmek için bileti bilmeniz gerekir...

https://docs.mql4.com/ru/trading/OrderSelect - bkz. SELECT_BY_POS

Neden: