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

 
Igor Makanu :

이것이 당신에게 질문을 제기한다면 내가 설명할 수 있을지 의심스럽습니다.

객체는 ... 글쎄, 그것을 클래스 변수로 하자

코드 섹션에서 CProgram 클래스

코드의 어딘가에 작성되어야 합니다

그리고 당신은 전화해야합니다

당신은 신입니다!!! 나는 당신을 이해했고 모든 것이 잘되었습니다)
 

말해봐 그게 무슨 뜻이야?

' OrderSend '의 반환 값을 확인해야 합니다. TestLibrary.mq4 64 6

 
MakarFX :

말해봐 그게 무슨 뜻이야?

'OrderSend'의 반환 값을 확인해야 합니다. TestLibrary.mq4 64 6

OrderSend의 결과를 확인해야 합니다. :-)

 
Maxim Kuznetsov :

OrderSend의 결과를 확인해야 합니다. :-)

나는 영어를 안다)))

그것을 확인하는 방법?

 
MakarFX :

나는 영어를 안다)))

그것을 확인하는 방법?

result=SomeOperation(....)

if (result!=ok) {

Print("Error");

}

 
Maxim Kuznetsov :

result=SomeOperation(....)

if (result!=ok) {

Print("Error");

}

감사해요
 
//+----------------------------------------------- --------------------+
//| TEST_V01.mq4 |
//| Copyright 2019, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+----------------------------------------------- --------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#속성 링크 "https://www.mql5.com"
#속성 버전 "1.00"
#속성엄격
#define MAGICMA 20131111
//--- 입력
입력 int 위험 = 1;
입력 int Max_Risk = 8;
입력 정수 SL = 100;
//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
int OnInit()
{
//---
//---
반환(INIT_SUCCESSED);
}
//+----------------------------------------------- --------------------+
//| 전문적인 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
무효 OnDeinit(const int 이유)
{
//---
}
//+----------------------------------------------- --------------------+
//| 전문가 틱 기능 |
//+----------------------------------------------- --------------------+
무효 OnTick()
{
if(OrdersTotal()==0)
if(OrderSend(Symbol(), OP_BUY, Lot_Calculate(Symbol(), Risk, Max_Risk, SL), Ask, 30, NormalizeDouble(Ask - SL*Point, Digits), NormalizeDouble(Ask + SL*Point, Digits)," ",MAGICMA,0,블루)==-1)
Print("오류: ",GetLastError());
}
//+----------------------------------------------- --------------------+
//------------------------------------------------ ------------------
// Lot_Calculate |
//------------------------------------------------ ------------------
이중 Lot_Calculate(문자열 _symbol, int _risk, int _m_risk, int _pips)
{
_m_risk = 최대 위험;
핍+=20;
이중 최소 슬롯 = MarketInfo(_symbol,MODE_MINLOT);
이중 최대 슬롯 = MarketInfo(_symbol,MODE_MAXLOT);
이중 단계 = MarketInfo(_symbol,MODE_LOTSTEP);
더블 money_risk = NormalizeDouble(AccountEquity()*_risk/100.2);
더블 calk_pip_cost = NormalizeDouble(money_risk/_pips,2); // 1핍의 비용
이중 lot_pip_cost = MarketInfo(_symbol,MODE_TICKVALUE); // 하나의 표준 랏의 부피에 따라 가격이 변할 때 1포인트의 비용
// while(!MathIsValidNumber(lot_pip_cost || lot_pip_cost ==0)
//{
// lot_pip_cost = MarketInfo(_symbol,MODE_TICKVALUE);
//}
이중 로트 = calk_pip_cost/lot_pip_cost;
//------------------------------------------------ --------------
더블 money_m_risk = NormalizeDouble(AccountEquity()*2*_risk/100.2); // 위험을 두 배로 늘리고 나도 등록했습니다.
더블 _m_calk_pip_cost = NormalizeDouble(money_m_risk/_pips,2); // 2배 후 1포인트의 비용 계산
이중 lot_m = _m_calk_pip_cost/lot_pip_cost; // 더블링 후 로트 계산
if(lot <= minlot) lot = minlot;
else if(lot >= maxlot) lot = maxlot;
else if(lot > minlot && lot < maxlot)
{
int k = int((lot - minlot)/steplot);
많은 = NormalizeDouble(minlot+k*steplot,2);
}
반환(로트);
// ------------------------------------------------ ------
{
if(lot_m <= minlot) lot_m = minlot; // 이 줄에서 내 이니셔티브
else if(lot_m >= maxlot) lot_m = maxlot;
else if(lot_m > minlot && lot_m < maxlot)
{
int k = int((lot - minlot)/steplot);
lot_m = NormalizeDouble(minlot+k*steplot,2);
}
반환(lot_m);
if(OrderProfit()>0) 많은 --;
if(OrderProfit()<0) lot_m++;
}
if(_m_risk == Max_Risk) lot_m = 많은; // 여기서 일반적으로 무엇을 이해하게 될까요?
리턴(0);

}


지금 이틀째 고생중입니다. 위험 재계산 기능을 작성할 수 없습니다.

아이디어는 다음과 같습니다. 거래가 TP에 의해 성사되면 위험 수준은 동일하게 유지됩니다.

SL만큼 위험을 조언자의 입력 변수 값까지 2배 등으로 증가시키면 Max_Risk = 8;

그런 다음 초기 위험으로 재설정합니다. 위험 = 1;

글쎄, 거래를 두 배로 늘리고 TR에 의해 성사되면 초기 위험으로 돌아갑니다. Risk = 1;

도울 수 있니?

미리 감사드립니다.

Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. и снова dll и маркет День добрый! Правило №1 dll на...
 
전혀 그렇지 않습니다.
 

안녕하세요!

프로 도움. 한 가지 문제를 해결할 수 없습니다. 코드는 다음과 같습니다.


datetime some_time=TimeCurrent();

정수 시작()

{

이중 합계;

이중 차이;

int k=iBarShift("", PERIOD_M5 , 일부_시간);

이중 VAL0=MathAbs(iATR(NULL,0,1,1))/점;

이중 VAL1=MathAbs(iATR(NULL,0,1,0))/점;

만약 (VAL1>VAL0)

{

razn = MathAbs((iATR(NULL,0,1,0))-(iATR(NULL,0,1,1)))/점;

for(int i = k; i >= 1; i--)

{

합계=합+라진;

}

Comment("사용된 기간: ",k,"\n",

"ATR 이전: "+VAL0+"\n",

"ATR 현재: ",VAL1,"\n",

"ATR 차이: ",razn,"\n",

"차이 누적: ",합계,"\n");

}

리턴(0);

}

결론은 다음과 같습니다. 조언자는 현재 ATR 값과 이전 ATR 값 간의 차이를 계산합니다. 하지만! ATR이 상승하는 경우에만.

이 차이는 "razn" 변수에 표시됩니다. 각각의 새 막대가 도착할 때 "summ" 변수에 합산/누적할 "razn" 변수 값이 필요합니다.

현재 버전에서는 "summ" 누적이 제대로 작동하지 않습니다.

사이클이 아닐까 싶습니다.


Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql5-программа.
 
좋은 오후 포럼 회원입니다. 정보를 찾을 수 없습니다. 저점과 고점에서 특정 수준의 포인트까지 자동으로 선(수평 아님)을 그리는 도구가 있습니까? 다시 말해서, 낮음 또는 높음의 정의와 높음 또는 낮음과의 거리가 포인트로 고정되는 촛불에 대한 선의 생성은 무엇입니까? 나는 프랙탈 지표 가 낮음과 높음의 정의에 관여한다는 것을 발견했습니다. 그러나 가격이 일정 포인트만큼 변하는 지점까지 선을 그을 수 있는 그런 애드온은 찾지 못했습니다.