OrdersTotal ()은 이미 열려 있는 위치의 수를 반환합니다. 도움을 받아 이미 열린 포지션이 있는지 여부를 확인할 수 있습니다.
Mas_Ord_New[0][0]!=0인 경우 위치를 닫을 때 자습서의 Terminal() 함수를 사용합니다. 그러나 여기에 또 다른 작업이 있습니다. 하나의 주문이 이미 열려 있는 경우 현재 신호에 대한 거래를 금지하는 플래그를 만들어야 합니다. 플래그를 사용하려고 하는데 뭔가 실수를 했습니다.
staticbool buy_1= true ;
if (Stoch_Sig== 4 && buy_l== true )
{
sl=Ask-Stop_Loss*Point;
Ans=OrderSend(Symb,OP_BUY,Lots,Ask, 40 ,sl, 0 , "LSMA+Stoch" ,Magic);
if (Ans== false )
Alert( "Неудачная попытка открыть ордер BUY. Ошибка: " , GetLastError());
if (Ans== true )
buy_l= false ; // снимем флаг, запрещаем торговать по данному сигналу
}
if (Stoch_Sig!= 4 && buy_l== false ) // поднимем флаг, сигнал сменился - торговать по нему можно опять
buy_l= true ;
매개변수 목록(필요한 경우). 전달된 매개변수는 선언 순서 및 사용자 지정 표시기의 외부(외부) 변수 유형과 일치해야 합니다.
방법
-
인디케이터 라인 인덱스. 0에서 7 사이일 수 있으며 SetIndexBuffer 함수 중 하나에서 사용하는 인덱스와 일치해야 합니다.
옮기다
-
표시기 버퍼에서 받은 값의 인덱스(현재 막대를 기준으로 지정된 기간 전에 지정된 수만큼 이동).
질문: "shift" 값을 얻는 방법은 무엇입니까? (시프트로 표시기를 호출할 때 값을 사용하지 않고 값을 사용합니다. 예를 들어 iCustom(NULL, 0, "name",pam1,0,1)= iCustom(NULL, 0, "name", pam1,0,100), 100바 전에 표시기를 호출하면 iCustom(NULL, 0, "name",pam1,0,100)과 다른 값을 갖게 됩니다. 표시기는 단순하며 5개의 이전 닫기를 사용합니다. 값은 평균을 취합니다.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.06.2007 |//| Описание : Удаление ордеров. Версия функции для тестов на истории. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| op - операция ( -1 - любой ордер) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
int i, k= OrdersTotal (), ot;
if (sy== "" || sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
ot= OrderType ();
if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
if ( OrderSymbol ()==sy && (op< 0 || ot==op)) {
if (mn< 0 || OrderMagicNumber ()==mn) {
OrderDelete ( OrderTicket (), clDelete);
}
}
}
}
}
}
오류 발생 --->
결국, 함수의 모든 변수는 내부에서 선언됩니다... 무엇이 잘못되었나요?
복사해서 붙여넣었습니다. --->
if ((High[ 2 ]==High[ 1 ])||(Close[ 2 ]==High[ 1 ])||(High[ 2 ]==Open[ 1 ]))
{
DeleteOrders()
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.06.2007 |//| Описание : Удаление ордеров. Версия функции для тестов на истории. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| op - операция ( -1 - любой ордер) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
int i, k= OrdersTotal (), ot;
if (sy== "" || sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
ot= OrderType ();
if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
if ( OrderSymbol ()==sy && (op< 0 || ot==op)) {
if (mn< 0 || OrderMagicNumber ()==mn) {
OrderDelete ( OrderTicket (), clDelete);
}
}
}
}
}
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 13.06.2007 |//| Описание : Удаление ордеров. Версия функции для тестов на истории. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL - текущий символ) |//| op - операция ( -1 - любой ордер) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+void DeleteOrders( string sy= "" , int op=- 1 , int mn=- 1 ) {
int i, k= OrdersTotal (), ot;
if (sy== "" || sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
ot= OrderType ();
if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
if ( OrderSymbol ()==sy && (op< 0 || ot==op)) {
if (mn< 0 || OrderMagicNumber ()==mn) {
OrderDelete ( OrderTicket (), CLR_NONE ) ;
}
}
}
}
}
}
OrdersTotal ()은 이미 열려 있는 위치의 수를 반환합니다. 도움을 받아 이미 열린 포지션이 있는지 여부를 확인할 수 있습니다.
Mas_Ord_New[0][0]!=0인 경우 위치를 닫을 때 자습서의 Terminal() 함수를 사용합니다. 그러나 여기에 또 다른 작업이 있습니다. 하나의 주문이 이미 열려 있는 경우 현재 신호에 대한 거래를 금지하는 플래그를 만들어야 합니다. 플래그를 사용하려고 하는데 뭔가 실수를 했습니다.
얘들아 도움이 필요해 이게 뭐야
2012.09.10 18:40:20 '6257743': 주문 매수 5.00 EURUSD 개시 1.27816 sl: 1.27791 tp: 1.27876 실패 [잘못된 S/L 또는 T/P]
가격과 손절매가 동일한 이유:
가격 1.25618 손절매 1.25618 이익을 취하십시오 1.25698
이익을 취하십시오 60핍
손절매 20
안녕하세요. 커스텀 인디케이터에 대해 질문이 있습니다. iCustom 설명은 다음과 같이 말합니다.
질문: "shift" 값을 얻는 방법은 무엇입니까? (시프트로 표시기를 호출할 때 값을 사용하지 않고 값을 사용합니다. 예를 들어 iCustom(NULL, 0, "name",pam1,0,1)= iCustom(NULL, 0, "name", pam1,0,100), 100바 전에 표시기를 호출하면 iCustom(NULL, 0, "name",pam1,0,100)과 다른 값을 갖게 됩니다. 표시기는 단순하며 5개의 이전 닫기를 사용합니다. 값은 평균을 취합니다.
도움을 주시면 감사하겠습니다.
설정한 주선과의 편차는 0 (영)입니다. 우리는 0 이상이 필요합니다.
여전히 편차를 음수로 설정하시겠습니까?
고마워, 동지들! 정확히! 벌고 돌보지 않았습니다. 죄송합니다만, 생산하지 않도록 감사를 누르는 방법이 없습니다. )
그건 그렇고, 초보자가 유창한 이름을 가진 변수를 통해 지표에 매개 변수를 전달하는 것이 좋습니다. 지금까지 그렇게 해왔지만 이번에는 뭔가를 놓쳤습니다.
모두 좋은 저녁!
나는 같은 문제에 대해 모든 것을 묻고 싶었습니다. 여기에서 기능을 가져왔습니다. https://www.mql5.com/en/forum/131859
오류 발생 --->
결국, 함수의 모든 변수는 내부에서 선언됩니다... 무엇이 잘못되었나요?
복사해서 붙여넣었습니다. --->
거기에는 오류가 없습니다:
그러나 색상만 지정하면 됩니다(예: - CLR_NONE ) .그리고 당신이 "공중에 매달려있는"것처럼 보입니다.
그리고 일반적으로 그러한 조건 (높음[ 2 ]==높음[ 1 ]) 또는 이와 같은 (닫기[ 2 ]==높음[ 1 ]) 또는 그러한 조건 (높음[ 2 ]==열기[ 1 ]) 을 충족하는 것은 드문 . 그래프를 봐, 그런 일치를 많이 찾을 수 있습니까?주문 삭제 논리의 관점에서 ... - 또한 간단히 말해서 어려움을 겪습니다.
여기에서 코드를 복사하고 새 프로젝트(어드바이저)를 생성하여 코드를 붙여넣음 -> 컴파일됨
이상하지만 여전히 같은 오류가 발생합니다 ...
여기에서 코드를 복사하고 새 프로젝트(어드바이저)를 생성하여 코드를 붙여넣음 -> 컴파일됨
이상하지만 여전히 같은 오류가 발생합니다 ...