내 함수의 마지막 return()은 상품에 대한 최소 가용 로트를 제공합니다. 계정이 레버리지가 큰 센트 계정인 경우 잔액이 600 미만일 때 EA는 아마도 한동안 계속 거래할 것입니다. :)
추신: 작업이 구체적이며 질문자에게 검색 방향을 제공하는 분기
글쎄, 너그럽게 용서하십시오 ... :) 너무 화내지 마십시오, 선생님 ... :)
내 에디션의 기능은 다음과 같습니다.
// ==========================================================================// ------------ Функция рассчёта величины лота для открытия позиции ---------// Если лот превышает возможный для открытия позы, то он корректируется // ==========================================================================double CorrectLots( double lt)
{
double ltcorr;
double pnt = MarketInfo( Symbol (),MODE_POINT);
double mspr = MarketInfo( Symbol (),MODE_SPREAD);
double dig = MarketInfo( Symbol (),MODE_DIGITS);
double MaxLot = MarketInfo( Symbol (),MODE_MAXLOT);
double MinLot = MarketInfo( Symbol (),MODE_MINLOT);
double StpLot = MarketInfo( Symbol (),MODE_LOTSTEP);
double OneLot = MarketInfo( Symbol (),MODE_MARGINREQUIRED);
double TradeMrg = NormalizeDouble (AccountFreeMargin()/ 4.0 ,dig); // Свободные средства, разрешенные к торговле
lt= MathAbs (lt);
ltcorr=lt; // Зададим начальное значением ltcorr равным значению ltif (lt>=MaxLot) ltcorr=MaxLot; // Проверим превышение допустимых ...if (lt<=MinLot) ltcorr=MinLot; // ... значений лотаdouble Money=lt*OneLot+mspr*pnt; // Вычисляем стоимость открываемой позыif (Money<TradeMrg) // Если свободных средств больше, чем цена позиции -
{
return (ltcorr); // ... возвращаем неизменённый лот
}
elseif (Money>=TradeMrg) // Если цена позиции равна или больше, чем есть свободных средств, то ...
{
ltcorr= MathAbs ( MathFloor (TradeMrg/OneLot/StpLot)*StpLot); // ... рассчитаем допустимый лотdouble MoneyCorr=ltcorr*OneLot+mspr*pnt;
Print ( "Func CorrectLots: лот " ,lt, " скорректирован до " ,ltcorr,
" Стоимость позы до корректировки = " ,Money,
" Стоимость позы после корректировки = " ,MoneyCorr
);
return (ltcorr); // ... и вернём его значение
}
Print ( "Func CorrectLots: лот вернули без изменений" );
return (ltcorr); // Возврат изначального лота в непредусмотренных случаях с сообщением
}
내 함수의 마지막 return()은 상품에 대한 최소 가용 로트를 제공합니다. 계정이 레버리지가 큰 센트 계정인 경우 잔액이 600 미만일 때 EA는 아마도 한동안 계속 거래할 것입니다. :)
추신: 작업이 구체적이며 질문자에게 검색 방향을 제공하는 분기
알다시피, Igor-여기 사람이 물었고, 당신은 그에게 올바르게 대답했으며, 말하자면 잊어 버릴 수 있습니다. 그러나 결국 균형에서 춤을 추는 것은 내장이 아닙니다. 균형이 하늘 높이 치솟을 수 있는 바로 그 이유와 실제 상황 - 이제 저장해야 할 때입니다. 그리고 여기 우리는 여전히 Xr-r-like입니다 ... 그리고 주문의 맨 위에 있고 많은 것이 ... 그리고 그는 rr - 한 번, 예에서 마이너스로 갔었습니다 ... 주식 - 거기, 그렇지만 이미 거기에 ... 따라서 잔액보다 자금에서 춤을 추는 것이 좋습니다 ... :)
모든 통화 쌍을 동시에 처리하도록 MQL4 에서 사용자 지정 표시기 를 작성할 수 있는지 초보자에게 알려주십시오. 내가 이해하는 한 지표 차트에는 최대 8개의 선을 표시할 수 있지만 한 개의 선만 필요합니다. 저것들. 모든 통화 쌍에 대한 배열 또는 변수에서 동시에 처리된 이 행에 대한 배열을 얻을 수 있습니까?
이론적으로 장애물이 보이지 않습니다. 또 다른 질문은 이 어레이를 구체적으로 처리할 수 있는지 여부입니다.
도구를 작성할 때 프로그램 코드의 모든 통화 쌍을 어떻게 참조할 수 있습니까? 작성 도구의 예를 살펴보니 통화 쌍에 대한 참조가 없으며 특정 시세 차트에 연결된 통화 쌍이 기본적으로 처리됩니다.
내 요점은 Excel과 VBA가이 모든 작업을 수행하고 있다는 것입니다. DDE 서버를 통해 22 통화 쌍에 대한 정보를 받고 VBA 프로그램 코드를 사용하여 동시 처리를 의미하지만 먼저 2 시간을 기다려야하기 때문에 매우 불편합니다. Excel에서 그래프로 분석을 위한 데이터 기록 축적. 네, 그리고 프로그램에서 다른 프로그램으로 건너뛰기가 불편해서 MT4로 이 모든 것을 옮기는 방법을 고민하고 있습니다.
잔액 600-1199 로트 0.1
잔액 1200-1799 로트 0.2
잔액 1800-2399 로트 0.3 등
고문으로 조직하는 방법? 고맙습니다.
잔액 600-1199 로트 0.1
잔액 1200-1799 로트 0.2
잔액 1800-2399 로트 0.3 등
고문에서 조직하는 방법? 고맙습니다.
호출: ticket=OrderSend(Symbol(),OP_BUY, Lot() ,Ask,3,Bid-25*Point,Ask+25*Point,"내 주문 번호",magic,0, CLR_NONE );
call: ticket=OrderSend(Symbol(),OP_BUY, Lot() ,Ask,3,Bid-25*Point,Ask+25*Point,"내 주문 번호",magic,0,CLR_NONE);
이 경우 잔액은 클라우드에 있고 자본은 큰 손실을 입을 수 있습니다. 따라서 부지의 크기가 열 수 있는 것보다 더 커질 수 있으며 전체 구조가 머리 위로 굴러떨어질 것입니다...
개봉하기 전에 정말 가능한 로트를 조정하는 것이 좋습니다.
이를 위해 함수를 만들었습니다. Victor( Vinin )에 의해 약간 수정되었습니다. 시도해 보세요.
인라인
... 자유 증거금을 4로 나누고 자유 증거금의 4분의 1만 거래할 수 있는 것으로 간주됩니다.
4로 나누기를 제거하고 최소한 전체 마진을 사용하여 원하는 대로 베팅할 수 있습니다.
그러나 이 기능은 허용된 것보다 더 큰 크기를 사용하는 것을 허용하지 않습니다.
이 경우 잔액은 클라우드에 있고 자본은 큰 손실을 입을 수 있습니다. 따라서 부지의 크기가 열 수 있는 것보다 더 커질 수 있으며 전체 구조가 머리 위로 굴러떨어질 것입니다...
왜이리 슬프지...
내 함수의 마지막 return()은 상품에 대한 최소 가용 로트를 제공합니다. 계정이 레버리지가 큰 센트 계정인 경우 잔액이 600 미만일 때 EA는 아마도 한동안 계속 거래할 것입니다. :)
추신: 작업이 구체적이며 질문자에게 검색 방향을 제공하는 분기
왜이리 슬프지...
내 함수의 마지막 return()은 상품에 대한 최소 가용 로트를 제공합니다. 계정이 레버리지가 큰 센트 계정인 경우 잔액이 600 미만일 때 EA는 아마도 한동안 계속 거래할 것입니다. :)
추신: 작업이 구체적이며 질문자에게 검색 방향을 제공하는 분기
내 에디션의 기능은 다음과 같습니다.
왜이리 슬프지...
내 함수의 마지막 return()은 상품에 대한 최소 가용 로트를 제공합니다. 계정이 레버리지가 큰 센트 계정인 경우 잔액이 600 미만일 때 EA는 아마도 한동안 계속 거래할 것입니다. :)
추신: 작업이 구체적이며 질문자에게 검색 방향을 제공하는 분기
알다시피, Igor-여기 사람이 물었고, 당신은 그에게 올바르게 대답했으며, 말하자면 잊어 버릴 수 있습니다. 그러나 결국 균형에서 춤을 추는 것은 내장이 아닙니다. 균형이 하늘 높이 치솟을 수 있는 바로 그 이유와 실제 상황 - 이제 저장해야 할 때입니다. 그리고 여기 우리는 여전히 Xr-r-like입니다 ... 그리고 주문의 맨 위에 있고 많은 것이 ... 그리고 그는 rr - 한 번, 예에서 마이너스로 갔었습니다 ... 주식 - 거기, 그렇지만
이미 거기에 ... 따라서 잔액보다 자금에서 춤을 추는 것이 좋습니다 ... :)
안녕하세요!
모든 통화 쌍을 동시에 처리하도록 MQL4 에서 사용자 지정 표시기 를 작성할 수 있는지 초보자에게 알려주십시오. 내가 이해하는 한 지표 차트에는 최대 8개의 선을 표시할 수 있지만 한 개의 선만 필요합니다. 저것들. 모든 통화 쌍에 대한 배열 또는 변수에서 동시에 처리된 이 행에 대한 배열을 얻을 수 있습니까?
답장을 보내주셔서 감사합니다.
저것들. 모든 통화 쌍에 대한 배열 또는 변수에서 동시에 처리된 이 행에 대한 배열을 얻을 수 있습니까?
이론적으로 장애물이 보이지 않습니다. 또 다른 질문은 이 어레이를 구체적으로 처리할 수 있는지 여부입니다.
이론적으로 장애물이 보이지 않습니다. 또 다른 질문은 이 어레이를 구체적으로 처리할 수 있는지 여부입니다.
도구를 작성할 때 프로그램 코드의 모든 통화 쌍을 어떻게 참조할 수 있습니까? 작성 도구의 예를 살펴보니 통화 쌍에 대한 참조가 없으며 특정 시세 차트에 연결된 통화 쌍이 기본적으로 처리됩니다.
내 요점은 Excel과 VBA가이 모든 작업을 수행하고 있다는 것입니다. DDE 서버를 통해 22 통화 쌍에 대한 정보를 받고 VBA 프로그램 코드를 사용하여 동시 처리를 의미하지만 먼저 2 시간을 기다려야하기 때문에 매우 불편합니다. Excel에서 그래프로 분석을 위한 데이터 기록 축적. 네, 그리고 프로그램에서 다른 프로그램으로 건너뛰기가 불편해서 MT4로 이 모든 것을 옮기는 방법을 고민하고 있습니다.