포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 511

 
AlexMikash :

좋은 하루, 친애하는!

당신은 변수를 호출해야 합니다: 오늘의 고가, 당일의 저가, 당일의 종가와 시가, 그리고 다음날 시가!

진심으로, Alex Mikash

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

if(DayOfWeek()==1,2..... && Hour()==1,2....)
{
이중 hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL, PERIOD_D1,0 )));//높은 정의
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//낮은 값을 결정합니다.

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

double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0)));//개방을 결정합니다.

 
woin2110 :

if ((하이-로우)<=max_koridor_v_punktah)
{
int buy = OrderSend(Symbol(), OP_BUYSTOP, LotBuy, OpenBuy, 0, StopLossBuy, 0);//구매 주문을 엽니다.

만약 (구매>0)
{
Alert("구매 중지 주문 세트",구매);
}
int Sell= OrderSend(Symbol(), OP_SELLSTOP, LotSell, OpenSell, 0, StopLossSell, 0);//판매 주문을 엽니다.
만약 (매도>0)
{
경고("SellStop 주문 세트",판매);
}
if (DayOfWeek()==5 && Hour()==22) // 서버 시간 금요일 23:00에 보류 및 미결 주문 삭제
{
if (OrderSelect(sell,SELECT_BY_TICKET)==true)
{
OrderClose(sell,OrderLots(),Bid,3,Green);//(티켓, 로트, 종가, 슬리피지 포인트, 차트의 종가 화살표 색상)

판매를 위해 시장가 주문을 마감합니다.
OrderDelete(sell);//판매 한도를 닫습니다.
}
if (OrderSelect(구매,SELECT_BY_TICKET)==true)
{
OrderClose(buy,OrderLots(),Ask,3,Red);//(티켓, 로트, 종가, 슬리피지 포인트, 차트의 종가 화살표 색상)

구매를 위해 시장가 주문을 마감합니다.
OrderDelete(구매);//구매 제한을 닫습니다.
리턴(0);
}
}
}

주문을 마감하지 않고 한도를 삭제하지 않는 이유를 누가 알려줄까요?

최소

그래서:

 if ((hi-low)<=max_koridor_v_punktah)
{
buy = OrderSend ( Symbol (), OP_BUYSTOP , LotBuy, OpenBuy, 0 , StopLossBuy, 0 ); //открытие ордера на покупку.

if (buy> 0 ) 
{
Alert ( "Установлен ордер BuyStop " ,buy);
}
 sell= OrderSend ( Symbol (), OP_SELLSTOP , LotSell, OpenSell, 0 , StopLossSell, 0 ); //открытие ордера на продажу.
if (sell> 0 ) 
{
Alert ( "Установлен ордер SellStop " ,sell);
}
if ( DayOfWeek ()== 5 && Hour ()== 22 ) //удаляем отложенные и открытые ордера в пятницу, в 23:00 по серверному времени 
{
if ( OrderSelect (sell, SELECT_BY_TICKET )== true )
{
OrderClose (sell, OrderLots (), Bid , 3 ,Green); //(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет 
 стрелки закрытия на графике)зыкрытие рыночного ордера на продажу.
OrderDelete (sell); //закрытие лимиток на продажу.
}
if ( OrderSelect (buy, SELECT_BY_TICKET )== true )
{
OrderClose (buy, OrderLots (), Ask , 3 ,Red); //(тикет,лот,цена закрытия,проскальзывание в пунктах,цвет стрелки 
 закрытия на графике)зыкрытие рыночного ордера на покупку.
OrderDelete (buy); //закрытие лимиток на покупку.
return ( 0 ); 
}
} 
}
далее int buy,sell; должно быть за пределами старта
Да и лимиток тут нет, поэтому закрыть он их и не должен. 
 
Vladon :

최소

그래서:

감사해요
 
고문의 다중 통화 테스트를 수행할 수 있는 리소스/플랫폼이 있습니까?
 
evillive :
로봇은 차트에서 제거되고 터미널이 닫힐 때 메모리에서 언로드됩니다. 최소한 가이드를 조금 살펴보면 매우 유용하며 손으로 하는 것처럼 많은 질문을 제거합니다.

읽지 않습니다. 동영상도 보지 마세요. 최면을 걸어야 하는데...
 
Trader7777 :
고문의 다중 통화 테스트를 수행할 수 있는 리소스/플랫폼이 있습니까?


네.

MT5

 
Vladon :


네.

MT5


MLQ4로 작성된 EA가 작동합니까?
 
isn-88 :

안녕하세요. 이벤트 작동 방식을 이해합니다. 차트에서 개체 삭제 이벤트(CHARTEVENT_OBJECT_DELETE)가 작동하지 않습니다. 마우스와 개체 목록을 통해 모두 삭제되었습니다. 빌드 600.

무슨 일이야?

도움말의 코드를 사용합니다.

#define KEY_NUMPAD_5 12
#define KEY_LEFT 37
#define KEY_UP 38
#define KEY_RIGHT 39
#define KEY_DOWN 40
#define KEY_NUMLOCK_DOWN 98
#define KEY_NUMLOCK_LEFT 100
#define KEY_NUMLOCK_5 101
#define KEY_NUMLOCK_RIGHT 102
#define KEY_NUMLOCK_UP 104
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit ()
{
//---
Print ( "Запущен эксперт с именем " , MQLInfoString ( MQL_PROGRAM_NAME ));
//---
return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id, // идентификатор события
const long & lparam, // параметр события типа long
const double & dparam, // параметр события типа double
const string & sparam) // параметр события типа string
{
//--- нажатие левой кнопкой мышки на графике
if (id== CHARTEVENT_CLICK )
{
Print ( "Координаты щелчка мышки на графике: x = " ,lparam, " y = " ,dparam);
}
//--- нажатие мышкой на графическом объекте
if (id== CHARTEVENT_OBJECT_CLICK )
{
Print ( "Нажатие кнопки мышки на объекте с именем '" +sparam+ "'" );
}
//--- нажатие кнопки на клавиатуре
if (id== CHARTEVENT_KEYDOWN )
{
switch ( int( lparam))
{
case KEY_NUMLOCK_LEFT: Print ( "Нажата KEY_NUMLOCK_LEFT" ); break ;
case KEY_LEFT: Print ( "Нажата KEY_LEFT" ); break ;
case KEY_NUMLOCK_UP: Print ( "Нажата KEY_NUMLOCK_UP" ); break ;
case KEY_UP: Print ( "Нажата KEY_UP" ); break ;
case KEY_NUMLOCK_RIGHT: Print ( "Нажата KEY_NUMLOCK_RIGHT" ); break ;
case KEY_RIGHT: Print ( "Нажата KEY_RIGHT" ); break ;
case KEY_NUMLOCK_DOWN: Print ( "Нажата KEY_NUMLOCK_DOWN" ); break ;
case KEY_DOWN: Print ( "Нажата KEY_DOWN" ); break ;
case KEY_NUMPAD_5: Print ( "Нажата KEY_NUMPAD_5" ); break ;
case KEY_NUMLOCK_5: Print ( "Нажата KEY_NUMLOCK_5" ); break ;
default : Print ( "Нажата какая-то неперечисленная клавиша" );
}
ChartRedraw ();
}
//--- удален объект
if (id== CHARTEVENT_OBJECT_DELETE )
{
Print ( "Удален объект с именем " ,sparam);
}
//--- создан объект
if (id== CHARTEVENT_OBJECT_CREATE )
{
Print ( "Создан объект с именем " ,sparam);
}
//--- перемещен объект или изменены координаты точек привязки
if (id== CHARTEVENT_OBJECT_DRAG )
{
Print ( "Изменение точек привязки объекта с именем " ,sparam);
}
//--- изменен текст в поле ввода графического объекта Edit
if (id== CHARTEVENT_OBJECT_ENDEDIT )
{
Print ( "Изменен текст в объекте Edit " ,sparam);
}
}


나도 이상해
 
Trader7777 :

MLQ4로 작성된 EA가 작동합니까?


코드를 mt5로 번역하면 그렇습니다.

다른 수단이 없습니다.

 
Zolotai :


고맙습니다. void init 및 deinit가 필요한 이유는 무엇입니까? 나는 deinit를 이해합니다. 그 안에서만 코드가 실행됩니다. 로봇은 언제 시작합니까? 초기화는 어떻습니까 ?

가능한 한 코드로. 즉, 다시 한 번 다섯 자리 숫자에 대해 걱정하지 마십시오. 내가 현재 5자리 숫자인지 어떻게 알 수 있습니까?

초기화 함수의 간단한 조건
 double point;
int OnInit()
{
point = Point;
if ( Digits % 2 == 1 )// значит пятизнак
point *= 10;
}
금속, 재고 및 원자재는 포함되지 않습니다.