MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1946

 
Alexey Viktorov # :

모든 표시기는 하나의 스레드에서 작동합니다. 따라서 각 표시기는 프로세서 리소스의 일부를 소비합니다. 동일한 매개변수로 100500개의 표시기를 넣으면 터미널은 어떻게 될까요? 감자 300g이면 다음 20분 동안 완전히 행복할 수 있고 전체 가방을 어깨에 짊어질 수 있습니다. 이거 어때요?

분명한. 설명 감사합니다.
 

말해봐, 코드 베이스 어딘가에 이 스타일의 표시기 하위 창에서 그림을 그리는 것을 만났습니다.

못찾 겠어요


 
makssub # :

좋은 오후에요. 나는 Vile에 대해 읽었습니다. 더하거나 뺄 수 없습니다.
돈 관리에 관해서는 아무 말도 할 수 없습니다. 시도하지 않았다.
최신 개정판을 첨부합니다. 그러나 거기에서 나는 이미 나 자신을 위해 모든 것을 혼란 시켰습니다)
Order1(2) 선택한 주문의 이익
선택한 주문의 Order1(3) 로트

코드를 이해할 수 없습니다.

나는 설명하려고 노력할 것이다. 필요한 주문의 티켓을 알고 있기를 바랍니다. 이것은 작업을 크게 단순화합니다. 정황. 이익이 0보다 큰 수익성 있는 주문이 있고, 잃는 주문이 있고, 이익이 0보다 작고 수익성이 높은 이익보다 큰 주문이 있으며, 손실 주문을 부분적으로 청산하는 조건이 있습니다.

일반적으로 주문이 다방향인 경우 OrderCloseBy 를 통해 생각하지 않고 닫을 수 있습니다. 더 작은 수익성 있는 부분과 동일한 더 작은 무익한 부분이 닫힙니다. 2장의 티켓만 있으면 됩니다.

두 주문의 OrderProfit()(이것은 돈) 및 OrderLot()(이것은 로트의 볼륨)를 얻는 것이 더 어려울 수 있습니다. 이익 대 손실 비율을 계산하고 수익성이 있는 주문과 이 부분을 수익성이 없는 주문에서 로트로 마감합니다. 이익 및 주문 로트를 받기 전에 먼저 OrderSelect를 선택해야 합니다.

 // ticket1 тикет прибыльного ордера, ticket2 убыточного

bool sel1= OrderSelect (ticket1,SELECT_BY_TICKET,MODE_TRADES);
double profit1=OrderProfit();
double   Lts1=OrderLots();
double price1= 0 ; if (OrderType()== 0 )price1=Bid; else price1=Ask;

bool sel2= OrderSelect (ticket2,SELECT_BY_TICKET,MODE_TRADES);
double profit2=OrderProfit();                     // profit1 < profit2 можно условием впереди поставить
double   Lts2=OrderLots();
double price2= 0 ; if (OrderType()== 0 )price2=Bid; else price2=Ask;

double ratio= fabs (profit1/profit2); // или если ratio<1, и берем модуль, у нас один профит меньше нуля
double lotsl=Lts2*ratio;

 Alert ( "Попытка закрыть прибыльный ордер тикет1 " ,ticket1, ". Ожидание ответа.." );
         RefreshRates();                         // Обновление данных
 bool     Ans1=OrderClose(ticket1,Lts1,price1, 2 );       // Закрытие прибыльного ордера
         if (Ans1== true ) // Получилось :)
         Alert ( "Закрыт ордер тикет1 " ,ticket1, ". профит1 " ,profit1); 
else Alert ( " Ошибка при закрытии ордера  тикет1" ,ticket1, " Код ошибки " , GetLastError ());

Alert ( "Попытка закрыть часть ордера тикет2 " ,ticket2, ". Ожидание ответа.." );
         RefreshRates();                         // Обновление данных
bool      Ans2=OrderClose(ticket2,lotsl,price2, 2 );       // Закрытие убыточного ордера частично
         if (Ans2== true ) // Получилось :)
         Alert ( "Закрыт частично ордер тикет2 " ,ticket2, ". профит2 " ,profit2); 
else Alert ( " Ошибка при закрытии ордера  тикет2" ,ticket2, " Код ошибки " , GetLastError ());

 

  
 


Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
Vitaly Muzichenko # :

말해봐, 코드 베이스 어딘가에 이 스타일의 표시기 하위 창에서 그림을 그리는 것을 만났습니다.

못찾 겠어요


Scriptor 의 지표 보기

Scriptor
Scriptor
  • 2019.02.10
  • www.mql5.com
Профиль трейдера
 
Artyom Trishkin # :

Scriptor 의 지표 보기

고마워 찾았어 근데 좀 달라 한줄만

 
Vitaly Muzichenko # :

고마워 찾았어 근데 좀 달라 한줄만

여러 행이 있는 것 같아요.

 
Artyom Trishkin # :

여러 행이 있는 것 같아요.

1500개가 넘는 코드가 있는데 아마 놓쳤을 겁니다. 불행히도

 
Vitaly Muzichenko # :

고마워 찾았어 근데 좀 달라 한줄만

비탈리, 당신은 나를 놀라게합니다. 이러한 모든 표시기는 해당 코드와 함께 DRAW_ARROW의 구성을 기반으로 합니다. 사진에 사각형이 있습니다. 이것은 코드 167입니다.

       ObjectSetInteger ( 0 , up_arrow, OBJPROP_ARROWCODE , 167 );     // установим код стрелки 

그리고 행의 레벨은 고양이 또는 Artyom의 고양이가 원하는 대로 설정됩니다. 정수일 수도 있고 십분의 일일 수도 있습니다.

시작하고 작동하지 않는 것에 대해 질문하십시오.

 
Vitaly Muzichenko # :

말해봐, 코드 베이스 어딘가에 이 스타일의 표시기 하위 창에서 그림을 그리는 것을 만났습니다.

못찾 겠어요


그냥 DRAW_ARROW보다 맞지 않습니까?

하나의 색상으로 그리는 경우 버퍼 8개, 두 가지 색상으로 그리는 경우 버퍼 16개.

또는 선 두께가 큰 DRAW_COLOR_LINE입니다.

의미는 선이 항상 같은 수준(처음 1초 2 등)에 있고 색상만 변경된다는 것입니다.

 
Alexey Viktorov # :

비탈리, 당신은 나를 놀라게합니다. 이러한 모든 표시기는 해당 코드와 함께 DRAW_ARROW의 구성을 기반으로 합니다. 사진에 사각형이 있습니다. 이것은 코드 167입니다.

그리고 행의 레벨은 고양이 또는 Artyom의 고양이가 원하는 대로 설정됩니다. 정수일 수도 있고 십분의 일일 수도 있습니다.

시작하고 작동하지 않는 것에 대해 질문하십시오.

밑에서부터 들여쓰기의 원리가 명확하지 않아 여러 줄로 되어 있어도

이것은 내가 시작할 수 없는 곳입니다.