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

 
woin2110 :

if ((yüksek-düşük)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//alış emri açın.

eğer (satın al>0)
{
Alert("BuyStop sipariş seti",satın al);
}
int sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//satış emri açın.
eğer (sat>0)
{
Uyarı ("SellStop sipariş seti", satış);
}
if (DayOfWeek()==5 && Hour()==22) // Cuma günü 23:00 sunucu saatinde bekleyen ve açık siparişleri sil
{
if (OrderSelect(sat,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(bilet, lot, kapanış fiyatı, puan kayması, grafikte kapanış ok rengi) bir piyasa satış emrini kapatır.
OrderDelete(sell);//satış limitlerinin kapatılması.
}
if (OrderSelect(satın al,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(bilet, lot, kapanış fiyatı, puan kayması, grafikte kapanış ok rengi) bir piyasa alış emrini kapatır.
OrderDelete(buy);//satın alma limitlerini kapatıyor.
dönüş(0);
}
}
}

Emirleri neden kapatmadığını ve limitleri silmediğini size kim söyleyecek?


Alış fiyatından bir alış emrini kapatmanız, Satış fiyatından satmanız gerekir.
 
isn-88 :

Alış fiyatından bir alış emrini kapatmanız, Satış fiyatından satmanız gerekir.
Teşekkür ederim
 
AlexeyVik :
init işlevinde basit koşul
Metaller, stoklar ve hammaddeler sayılmaz.

TEŞEKKÜR. Bana en kolay seçeneği söyleme. Bu parite için açık pozisyon olup olmadığını anlamak gerekiyor. Satmak için emir var mı ve almak için emir var mı? Yani, almanız gerekir

0 - açık sipariş yoksa

1-satış emri var ama alış emri yok.

2- Alış emri var ama satış emri yok

3 hem de...

 
woin2110 :

https://docs.mql4.com/ru/series

if(DayOfWeek()==1,2..... && Hour()==1,2....)
{
double hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//yüksek tanımla
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//düşük olarak belirle.

///////////////////////////////////////////// //////////////////////////////////////////

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//açmayı belirle.


Sayesinde!
 
Zolotai :

TEŞEKKÜR. Bana en kolay seçeneği söyleme. Bu parite için açık pozisyon olup olmadığını anlamak gerekiyor. Satmak için emir var mı ve almak için emir var mı? Yani, almanız gerekir

0 - açık sipariş yoksa

1-satış emri var ama alış emri yok.

2- Alış emri var ama satış emri yok

3 hem de...

Örneğin şöyle:

int i_buy=0;

int i_sell=0;

//--- получим количество открытых и отложенных ордеров

int total=OrdersTotal();

for(int i=0;i<total;i++)

{

//--- выберем i-й ордер из списка торговли

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

{

//--- если ордер открыт по текущему финансовому инструменту

if(OrderSymbol()==Symbol())

{

switch(OrderType())

{

//--- Бай ордер

case OP_BUY:

i_buy++;

break;

//--- Селл ордер

case OP_SELL:

i_sell++;

break;

case OP_BUYSTOP:

case OP_BUYLIMIT:

case OP_SELLSTOP:

case OP_SELLLIMIT:

//--- пробойники, лимитники

break;

}

}

}

}


if(i_buy==0 && i_sell==0)

{

//--- нет открытых ордеров

}

if(i_buy>0 && i_sell==0)

{

//--- открыты баи

}

if(i_buy==0 && i_sell>0)

{

//--- открыты селы

}

if(i_buy>0 && i_sell>0)

{

//--- открыты и баи и селы

}

 
isn-88 :

Örneğin şöyle:



Çok teşekkürler. Anladığım kadarıyla sor güncel fiyat . Açık emir olmadığında bir emir açarım. Döngü, ilk açık siparişten son siparişe kadar yineleniyor mu? Son açık emrin lotunu ve fiyatını bir değişkene nasıl iletebilirim?
 
Zolotai :

Çok teşekkürler. Anladığım kadarıyla, sormak güncel fiyattır. Açık emir olmadığında bir emir açarım. Döngü, ilk açık siparişten son siparişe kadar yineleniyor mu? Son açık emrin lotunu ve fiyatını bir değişkene nasıl iletebilirim?

https://docs.mql4.com/ru/trading/orderselect https://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots

çift z; //"z" değişkeni bildiriliyor
çift y; //"y" değişkeni bildiriliyor


if(OrderSelect(10,SELECT_BY_POS)==true) //seçilen sipariş (bilet ile) mevcutsa

{

OrderLots()=z //bu siparişin lotunu "z" değişkenine atayın

OrderOpenPrice()=y //açık fiyatı "y" değişkenine ata

}

böyle dene

 
woin2110 :

https://docs.mql4.com/ru/trading/orderselect https://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots

çift z; //"z" değişkeni bildiriliyor
çift y; //"y" değişkeni bildiriliyor


if(OrderSelect(10,SELECT_BY_POS)==true) //seçilen sipariş (bilet ile) mevcutsa

{

OrderLots()=z //bu siparişin lotunu "z" değişkenine atayın

OrderOpenPrice()=y //açık fiyatı "y" değişkenine ata

}

böyle dene

y = OrderOpenPrice();


ATP, anladım, sadece anlamıyorum. if((i_buy==0 && i_sell==0) || y > Adım). Son açık olana olan mesafe 5 puandan fazla ise bir emir daha açmalıdır. Ama işe yaramıyor, soru.

for(int i=0;i<total;i++) İlk açılıştan sonuncuya kadar yinelenir mi? Yani, en sonunda son açık emrin fiyatını almalıyım.

 
Zolotai :

y = OrderOpenPrice();


ATP, anladım, sadece anlamıyorum. if((i_buy==0 && i_sell==0) || y > Adım). Son açık olana olan mesafe 5 puandan fazla ise bir emir daha açmalıdır. Ama işe yaramıyor, soru.

for(int i=0;i<total;i++) İlk açılıştan sonuncuya kadar yinelenir mi? Yani, en sonunda son açık emrin fiyatını almalıyım.


burada bilmiyorum rastlamadım
 

Merhaba. Konuda https://forum.mql4.com/ru/51490/page2 Uzman Danışman ayarları penceresini açan bir komut dosyasının olduğu bir gönderi gördüm:

bu, EA ayarları penceresini açar:

 //+------------------------------------------------------------------+
//|                                                      EaSetup.mq4 |
//+------------------------------------------------------------------+
//|                                                      EaStart.mq4 |
//|                                 Copyright © 2010, XrustSolution. |
//|                                           mail: xrustx@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, XrustSolution."
#property link       "mail: xrustx@gmail.com"
#import "user32.dll"
   int    RegisterWindowMessageA( string lpstring);
   int    PostMessageA( int   hWnd, int   Msg, int   wParam, string lParam);
#import
#define WM_COMMAND       0x0111
//+------------------------------------------------------------------+
void start(){ Sleep ( 200 );PostMessageA( WindowHandle ( Symbol (), Period ()), WM_COMMAND, 33048 , 0 ); return ;}
//+------------------------------------------------------------------+  

Söylesene, betiğin 1 saniye aralıklarla Expert Advisor ayarları penceresini açıp hemen onaylaması (Tamam düğmesine basın) vb. her zaman mümkün mü?

Neden: