1. init() 함수에서 주문을 열 수 없습니다.(테스터에서는 계속 작동하지만 데모에서는 작동하지 않습니다)
2. 주문을 마감할 때 처음부터 끝까지 계산해야 하며 그 반대의 경우도 마찬가지입니다.
답변 해주셔서 감사합니다. 이 경우 루프 연산자의 작업은 테스터에서 연구되었으므로 단순성을 위해 init()에서 주문을 엽니다. 이것은 실제 Expert Advisors에서는 발생하지 않습니다. 주문 선택 순서를 변경하면 실제로 한 틱 이내에 종료됩니다(프로그램 코드 및 테스터 로그의 보고서는 아래에 제공됨). MQL4에서 주문 작업의 순서를 선택할 수 없다는 것이 이상하게 보입니다. 이유를 알고 있다면 알려주세요. 왜냐하면. Expert Advisor의 논리에 따르면, 나는 주문이 열린 순서대로 정확하게 주문을 마감할 것입니다.
감사합니다. 쉬.
Код программы.
//+------------------------------------------------------------------+//| Poligon1.mq4 |//| 21 февраля 2013 года. |//|Тестирование оператора цикла for. |//+------------------------------------------------------------------+#property copyright "21 февраля 2013 года."#property link ""//+------------------------------------------------------------------+//|Объявленные переменные |//+------------------------------------------------------------------+int Mn= 357 ; //Magic numberint i; //Показатель счётчика итерацийdouble PriTP; //TP серииint Tick; //Счётчик тиков//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----Установка серии ордеровOrderSend ( Symbol (),OP_BUY, 0.5 ,Ask, 0 , NormalizeDouble (Bid- 35 * Point , Digits ),
NormalizeDouble (Ask+ 35 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 1 ,Ask, 0 , NormalizeDouble (Bid- 25 * Point , Digits ),
NormalizeDouble (Ask+ 25 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 1.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 2.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUY, 3.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUYOrderSend ( Symbol (),OP_BUYLIMIT, 1 , NormalizeDouble (Ask- 15 * Point , Digits ), 0 ,
NormalizeDouble (Bid- 40 * Point , Digits ), NormalizeDouble (Ask+ 25 * Point , Digits ),
NULL ,Mn, 0 , CLR_NONE ); //OP_BUYLIMITOrderSend ( Symbol (),OP_SELLSTOP, 3 , NormalizeDouble (Ask- 30 * Point , Digits ), 0 ,
NormalizeDouble (Bid+ 15 * Point , Digits ), NormalizeDouble (Ask- 75 * Point , Digits ),
NULL ,Mn, 0 , CLR_NONE ); //OP_SELLSTOP//----
PriTP=Bid; //PriTPPrint ( "Кс0:" , " OrdersTotal=" , OrdersTotal ()); //Сообщение//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----//----return ( 0 );
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----
Tick++; //Tick// Print("Кс1:"," Tick=",Tick);//Сообщение//----// for(i=0;i<OrdersTotal();i++)//Инициализация циклаfor (i= OrdersTotal ()- 1 ; i>= 0 ; i--) //
{
Print ( "Кс2:" , " Tick=" ,Tick, " i=" ,i); //Сообщениеif ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) //Выбор ордера i
{
if (OrderSymbol()== Symbol ()) //Символ
{
if (OrderMagicNumber()==Mn) //Идентификационное число
{
if (OrderType()==OP_BUY && OrderTakeProfit()>PriTP) //Тип операции текущего выбранного ордера
{
OrderClose(OrderTicket(),OrderLots(),Bid, 0 , CLR_NONE ); //Закрытие позиции
} //Закрыто if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)
} //Закрыто if(OrderMagicNumber()==Mn)
} //Закрыто if(OrderSymbol()==Symbol()
} //Закрыто if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
} //Закрыто for(i=0;i<OrdersTotal();i++)//----return ( 0 );
}
//+------------------------------------------------------------------+
답변 해주셔서 감사합니다. 이 경우 루프 연산자의 작업은 테스터에서 연구되었으므로 단순성을 위해 init()에서 주문을 엽니다. 이것은 실제 Expert Advisors에서는 발생하지 않습니다. 주문 선택 순서를 변경하면 실제로 한 틱 이내에 종료됩니다(프로그램 코드 및 테스터 로그의 보고서는 아래에 제공됨). MQL4에서 주문 작업의 순서를 선택할 수 없다는 것이 이상하게 보입니다. 이유를 알고 있다면 알려주세요. 왜냐하면. Expert Advisor의 논리에 따르면, 나는 주문이 열린 순서대로 정확하게 주문을 마감할 것입니다.
감사합니다. 쉬.
논리가 정확합니다. 주문에는 주문이 있는 만큼의 위치 번호가 있어야 하며, 하나가 마감되자마자 나머지는 모두 다시 계산되었습니다. 이 디자인을 시도
for (i= 0 , int k= 0 ; i< OrdersTotal ();i++,k++) //
{
Print ( "Кс2:" , " Tick=" ,Tick, " i=" ,i); //Сообщениеif ( OrderSelect (k,SELECT_BY_POS,MODE_TRADES)== true ) //Выбор ордера i
{
if (OrderSymbol()== Symbol ()) //Символ
{
if (OrderMagicNumber()==Mn) //Идентификационное число
{
if (OrderType()==OP_BUY && OrderTakeProfit()>PriTP) //Тип операции текущего выбранного ордера
{
OrderClose(OrderTicket(),OrderLots(),Bid, 0 , CLR_NONE ); //Закрытие позиции
k--;
} //Закрыто if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)
} //Закрыто if(OrderMagicNumber()==Mn)
} //Закрыто if(OrderSymbol()==Symbol()
} //Закрыто if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
} //Закрыто for(i=0;i<OrdersTotal();i++)
주문 댓글이 완전히 변경되었습니다. 또한 부분적으로 닫힐 때 마술이 때때로 0으로 재설정됩니다(부분 닫힘은 서버에서 시작됨). 이제 후자를 제어하기 위해 "외부" 주문 및 기타 불일치를 제어하는 별도의 루프형 Expert Advisor가 중단되어 푸시 메시지 를 적시에 알립니다.
외부 기능 을 사용하는 표시기가 있습니다. 컴파일된 라이브러리의 코드는 라이브러리 폴더에 있고 설명자는 포함에 있습니다.
연결 #include <lib_Zemckkikh.mqh>. 지표의 첫 번째 계산에서 모든 라이브러리 기능이 정상적으로 작동하고 지표가 차트에 표시됩니다. 매개변수를 변경하면(지표가 다시 계산되도록 강제) 라이브러리 기능이 호출되지 않고 지표가 표시되지 않으며 매개변수를 변경한 후 "전문가" 탭에 항목이 없습니다.
라이브러리 연결을 제거하고 필요한 함수를 표시기 파일에 넣으면(함수로 즉시 컴파일) 모든 것이 정상적으로 작동합니다.
무엇이 잘못되었는지 알 수 없습니다. 포럼을 막지 않기 위해 코드를 적용하지 않습니다. 필요하다면 개인소장으로 올리겠습니다.
여러분! 간단한 아이디어를 인코딩하는 방법을 알려주세요(아마도 조건부 연산자로)
- 손절매로 거래가 성사된 경우
- 손절매 가격으로 다른 거래를 엽니다.
감사해요
1. init() 함수에서 주문을 열 수 없습니다.(테스터에서는 계속 작동하지만 데모에서는 작동하지 않습니다)
2. 주문을 마감할 때 처음부터 끝까지 계산해야 하며 그 반대의 경우도 마찬가지입니다.
답변 해주셔서 감사합니다.
이 경우 루프 연산자의 작업은 테스터에서 연구되었으므로 단순성을 위해 init()에서 주문을 엽니다. 이것은 실제 Expert Advisors에서는 발생하지 않습니다.
주문 선택 순서를 변경하면 실제로 한 틱 이내에 종료됩니다(프로그램 코드 및 테스터 로그의 보고서는 아래에 제공됨).
MQL4에서 주문 작업의 순서를 선택할 수 없다는 것이 이상하게 보입니다. 이유를 알고 있다면 알려주세요. 왜냐하면. Expert Advisor의 논리에 따르면, 나는 주문이 열린 순서대로 정확하게 주문을 마감할 것입니다.
감사합니다. 쉬.
열 수 없는 손절매 가격이지만, 같은 방향이나 반대 방향으로 열리도록 조건을 설정할 수 있습니다!
다음은 조건에 넣을 수 있는 Kim의 "유용한 함수"의 함수 호출입니다.
isCloseLastPosByStop - 스톱으로 마지막 위치를 닫기 위한 플래그를 반환합니다.
if(isCloseLastPosByStop() == 0) 또는 ... == 1) 및 원하는 무엇이든.....
여기에서 기능을 찾을 수 있습니다: https://www.mql5.com/ru/forum/131859
그리고 그것을 시작 바깥에 두십시오!
그리고 간절한 부탁! 근면, 정확성 및 인내심을 가지고 이 모든 것을 스스로 할 수 있습니다. 그렇지 않으면 프롬프트에서 아무것도 배울 수 없습니다!
지식은 적절한 노력을 통해서만 획득됩니다! 매일의 호기심 많은 작업을 입력하십시오! 행운을 빕니다!
안녕하세요.
DC가 주문에 대한 의견을 변경하거나 삭제할 수 있는 상황이 있는지 알려주십시오.
미리 감사드립니다.
DC가 주문에 대한 의견을 변경하거나 삭제할 수 있는 상황이 있는지 알려주십시오...
네이티브 댓글
e121220_3in1 01
롤오버 후 DC 부록 포함
e121220_3in1 01 [교환]
즉, 주석으로 정렬을 찾고 있다면 먼저 "네이티브" 주석 줄의 길이를 결정하고 검색 시 해당 길이의 수정된 주석의 첫 부분만 확인해야 합니다. 또는 확인 중인 주석에서 기본 문자열의 발생을 확인합니다.
Shurkin :
답변 해주셔서 감사합니다.
이 경우 루프 연산자의 작업은 테스터에서 연구되었으므로 단순성을 위해 init()에서 주문을 엽니다. 이것은 실제 Expert Advisors에서는 발생하지 않습니다.
주문 선택 순서를 변경하면 실제로 한 틱 이내에 종료됩니다(프로그램 코드 및 테스터 로그의 보고서는 아래에 제공됨).
MQL4에서 주문 작업의 순서를 선택할 수 없다는 것이 이상하게 보입니다. 이유를 알고 있다면 알려주세요. 왜냐하면. Expert Advisor의 논리에 따르면, 나는 주문이 열린 순서대로 정확하게 주문을 마감할 것입니다.
감사합니다. 쉬.
논리가 정확합니다. 주문에는 주문이 있는 만큼의 위치 번호가 있어야 하며, 하나가 마감되자마자 나머지는 모두 다시 계산되었습니다. 이 디자인을 시도
안녕하세요.
DC가 주문에 대한 의견을 변경하거나 삭제할 수 있는 상황이 있는지 알려주십시오.
미리 감사드립니다.
주문 댓글이 완전히 변경되었습니다. 또한 부분적으로 닫힐 때 마술이 때때로 0으로 재설정됩니다(부분 닫힘은 서버에서 시작됨). 이제 후자를 제어하기 위해 "외부" 주문 및 기타 불일치를 제어하는 별도의 루프형 Expert Advisor가 중단되어 푸시 메시지 를 적시에 알립니다.
조건 작성 방법을 알려주세요.
1. 주문 기호 = 기호 및 주문 마법 = 135인 경우
2. 대기 중인 주문 이 없는 경우 BYSTOP
3. 미결제 주문이 없는 경우 BUY 또는 (있는 경우) 손절매>오픈 가격
4. 가격이 MA와 상향 프랙탈 사이에 있는 경우
보류 중인 바이스톱 주문을 하십시오
다음과 같이 작성:
작동하지 않습니다! 오류가 무엇인지 알려주세요!
다음 문제의 원인이 무엇인지 알려주십시오.
외부 기능 을 사용하는 표시기가 있습니다. 컴파일된 라이브러리의 코드는 라이브러리 폴더에 있고 설명자는 포함에 있습니다.
연결 #include <lib_Zemckkikh.mqh>. 지표의 첫 번째 계산에서 모든 라이브러리 기능이 정상적으로 작동하고 지표가 차트에 표시됩니다. 매개변수를 변경하면(지표가 다시 계산되도록 강제) 라이브러리 기능이 호출되지 않고 지표가 표시되지 않으며 매개변수를 변경한 후 "전문가" 탭에 항목이 없습니다.
라이브러리 연결을 제거하고 필요한 함수를 표시기 파일에 넣으면(함수로 즉시 컴파일) 모든 것이 정상적으로 작동합니다.
무엇이 잘못되었는지 알 수 없습니다. 포럼을 막지 않기 위해 코드를 적용하지 않습니다. 필요하다면 개인소장으로 올리겠습니다.