초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 84

 
Arseniy Barudkin : 포럼의 신사 여러분! 함수 작성을 도와주세요.

행복한 승리의 날!!! 4일이 지났습니다. 응답이 없습니다. 해보자... 개인적으로 불만족스러운 쓰기 !!!

 //+-------------------------------------------------------+
//| функция перебрала открытые ордера на графике          |
//| и выделила: 1) с самым маленьким лотом и --- профитом |
//| 2) с самым большим лотом и +++ профитом.       скрипт |
//| Предполагается, что такие есть. И удалила    PROBA.mq4|
//+-------------------------------------------------------+
// Назначение функций OrdersTotal, OrderSelect, OrderClose
// и прочих узнаем поставив на них курсор и нажав F1

#property strict

void OnStart ()
{
   int     Проскальзывание= 20 ;
   int     Тикет 1 = 0 ,  Тикет 2 = 0 ;
   double Лот 1 = 100000 , Лот 2 = 0 ;
   bool    Результат;     //  Чтоб избежать лишних предупреждений

   // Выделение
   for ( int Тикет= OrdersTotal ()- 1 ; Тикет>= 0 ; Тикет--)
   {
     if (! OrderSelect (Тикет, SELECT_BY_POS )) continue ; // Что-то помешало - идем к следующему
     if (OrderSymbol() != _Symbol) continue ;          // Чужой график

     // Если с меньшим лотом и   --- профитом   то запомним тикет и лот
     if ( OrderLots ()<Лот 1      &&   OrderProfit ()< 0 )
     {
       Тикет 1 = OrderTicket ();
       Лот 1 = OrderLots ();
     }

     // Если с большим лотом и   +++ профитом   то запомним тикет и лот
     if ( OrderLots ()>Лот 2      &&   OrderProfit ()> 0 )
     {
       Тикет 2 = OrderTicket ();
       Лот 2 = OrderLots ();
     }
   }

   // Удаление
   if (Тикет 1 )
   {
       while (! RefreshRates ());
      if( OrderSelect (Тикет 1 , SELECT_BY_TICKET ))  // Чтоб получить цену закрытия
         Результат= OrderClose (Тикет 1 , Лот 1 , OrderClosePrice (),Проскальзывание);
   }

   if (Тикет 2 )
   {
       while (! RefreshRates ());
      if( OrderSelect (Тикет 2 , SELECT_BY_TICKET ))
         Результат= OrderClose (Тикет 2 , Лот 2 , OrderClosePrice (),Проскальзывание);
   }
}   

그리고 나서 질문이 생겼습니다. 주문이 두 개뿐인 경우. 음수 이익이 있는 큰 로트와 양수 이익이 있는 작은 로트

그리고 주문이 하나뿐인 경우. 모든 주문이 동일한 로트이고 모두 마이너스 이익이 있는 경우 한 번에 하나씩 마감하시겠습니까?

 

안녕하세요!

도와주세요? EA는 매 틱마다 거래를 엽니다. 약 5개의 거래 또는 원하는 만큼만 열려면 코드를 어떻게 작성해야 합니까?

외부 int tp=50;

외부 int sl=200;

외부 이중 로트=0.01;

무효 OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsaho",1,0,Red);

}

무엇을 변경하고 코드에 추가해야 합니까?

대답할 수 있음 ***

고맙습니다!

 
alstefanov :

안녕하세요!

도와주세요? EA는 매 틱마다 거래를 엽니다. 약 5개의 거래 또는 원하는 만큼만 열려면 코드를 어떻게 작성해야 합니까?

외부 int tp=50;

외부 int sl=200;

외부 이중 로트=0.01;

무효 OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsaho",1,0,Red);

}

무엇을 변경하고 코드에 추가해야 합니까?

대답할 수 있음 ***

고맙습니다!

 extern int tp= 50 ;

extern int sl= 200 ;

extern double lot= 0.01 ;

void OnTick ()

{ 

if ( OrdersTotal ()==0) OrderSend ( "USDJPY" , OP_SELL ,lot, Bid , 0 , Ask +sl* Point , Ask -tp* Point , "Batsasho" , 1 , 0 ,Red);

}
 
테스터에서 어드바이저의 작업 속도를 높이는 방법을 알려주십시오. 그러면 어드바이저는 하나의 지표만 사용하여 더 빠르게 테스트할 수 있습니다.
 
missha32 : 더 빨리 테스트할 수 있도록 테스터에서 어드바이저의 작업 속도를 높이는 방법을 알려주세요. 어드바이저는 하나의 지표만 사용합니다

우선, 테스트 시간 간격을 줄입니다. 무엇보다도: 1) 지난 3개월. 2) 브렉시트가 중간에 있기까지 3개월. 모든 진드기에 대한 테스트를 거부하십시오. 실제로 MT4에는 역사상 틱이 없으며 가격이 위아래로 약간 흔들리는 것으로 모델링됩니다. M15와 M1의 두 가지 기간에 대해 테스트하고 어디가 더 나은지 확인합니다. 그리고 데모에서 더 나은 - 월요일 아침에 켜고 금요일 저녁에 잘 알려진 스크립트를 사용하여 결과를 확인하십시오. 100명의 어드바이저를 테스트해야 하는 경우 10개의 터미널을 열고 각 터미널에 10개의 어드바이저가 있는 차트가 있습니다.

컴퓨터를 많이 가지고 있어야 합니다. 레버리지가 500인 $4이면 실제 계정 에 충분합니다. 차트를 확인 하십시오. 올바르게 입력 하면 하루에 쉽게 입금액을 두 배로 늘릴 수 있습니다. 그리고 이것은 한 달에 백만 번입니다. 인터넷에 그런 무료 고문이 있습니까? 이거 파는사람? 따라서 컴퓨터에 돈을 투자해야 합니다. 진입점을 찾고 있습니다. 우리는 프로그램을 작성하고, 수식과 매크로를 사용하여 Excel에서 계산하고, 계산을 위한 스크립트와 Expert Advisors를 작성합니다. 그런 다음 진입점을 찾는 방법이 명확해지면 로봇, 정지, 후행, 입금, 보충, 인출, ...

 
STARIJ :

행복한 승리의 날!!! 4일이 지났습니다. 응답이 없습니다. 해보자... 개인적으로 불만족스러운 글 !!!

그리고 나서 질문이 생겼습니다. 주문이 두 개뿐인 경우. 음수 이익이 있는 큰 로트와 양수 이익이 있는 작은 로트

그리고 주문이 하나뿐인 경우. 모든 주문이 동일한 로트이고 모두 마이너스 이익이 있는 경우 한 번에 하나씩 마감하시겠습니까?

for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - 이것은 역순으로 티켓을 기준으로 시장가 주문을 정렬하는 코드입니다(마지막 열린 것부터 처음 열린 것까지) - 내가 올바르게 이해하고 있습니까?

키릴 자모 "티켓"은 작동하지 않습니다. 라틴어 "티켓"이 필요합니다.

 
Yaroslav Nykula :
for(int Ticket=OrdersTotal()-1; Ticket>=0; Ticket--) - 이것은 역순으로 티켓을 기준으로 시장가 주문을 정렬하는 코드입니다(마지막 열린 것부터 처음 열린 것까지) - 내가 올바르게 이해하고 있습니까?

키릴 자모 "티켓"은 작동하지 않습니다. 라틴어 "티켓"이 필요합니다.

확인은 하지 않았지만 키릴 자모 뿐만 아니라 중국어도 통과해야 합니다.
 
Vitaly Muzichenko : 확인은 안했는데 키릴 자모 뿐만 아니라 중국어도 통과해야 합니다.
새로운 언어를 접할 때 먼저 키릴 문자를 먹고 있는지 뱉어 내고 있는지 확인합니다. 이것은 테스트입니다. 스크립트가 첨부되어 있습니다 - 확인하십시오
파일:
PROBA.mq4  2 kb
 
안녕하세요. 문제는 특정 거래 기간(즉, 캔들 1개)의 틱 값(해당 가격)을 1차원 배열로 만드는 것이 가능합니까? 그리고 양초가 형성되는 동안 어레이가 형성되는 방식으로 수행하십시오. MQL4에서 실제입니까? 답변해 주시면 감사하겠습니다.
 
STARIJ :

행복한 승리의 날!!! 4일이 지났습니다. 응답이 없습니다. 해보자... 개인적으로 불만족스러운 글 !!!

그리고 나서 질문이 생겼습니다. 주문이 두 개뿐인 경우. 음수 이익이 있는 큰 로트와 양수 이익이 있는 작은 로트

그리고 주문이 하나뿐인 경우. 모든 주문이 동일한 로트이고 모두 마이너스 이익이 있는 경우 한 번에 하나씩 마감하시겠습니까?


정말 감사합니다! 연간 기능! 그리고 그건 그렇고, 키릴 문자도 읽고, 적어도 컴파일됩니다.. 더 나아가 어드바이저의 조건에 따라 두 개 이상의 주문이 있고 다음 주문을 여는 데 충분한 여백이 없을 때 함수가 호출됩니다. 그러나 나는 내 생각을 올바르게 표현하지 못했습니다. 조금 더 필요합니다! 오픈 포지션에서 가장 큰 이익을 내는 가장 큰 로트, 그리고 오픈 포지션 에서도 마이너스 이익을 내는 가장 작은 로트.