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

 
trader781 :

수정하겠습니다

당신은 그것을 다른 곳에 둘 수 없습니다, 그것은 잘못된 매개 변수가 될 것입니다

가장 최근의 것을 고려해야 함

나는 변화하려고 노력할 것이다

후자의 경우, 음, 예) 표준 OrderModify()로 해결하려고했지만 많은 주문이 지속적으로 동시에 이동되면 계정이 금지됩니다.

비판해 주셔서 감사합니다.

논쟁 없이 발표하라, 그것이 정말 그렇게 어려운 일인가?

int Counts()
{код функции}

그리고 비어 있음을 호출하지만 중괄호에 대한 출력은 다음과 같습니다.

if (Counts()== 0 ){че там нужно когда нет ордеров}
else {когда есть ордера}

이제 다음이 있습니다.

if (Counts()== 0 ){че там нужно когда else {когда есть ордера} нет ордеров}
 
Alekseu Fedotov :

시도 ^_~



작동하지 않습니다 .. 그렇지 않고 거래가 없기 때문에 ..
 
Movlat Baghiyev :
작동하지 않습니다 .. 그렇지 않고 거래가 없기 때문에 ..

그리고 적어도 그것은 지연을 드러내지, 아니, 어떤 실수

...결정된

파일:
0.mq4  8 kb
 
인수를 마쳤습니다. 터미널이 단단히 매달려 있습니다.
파일:
count.mq4  19 kb
 
trader781 :
인수를 마쳤습니다. 터미널이 단단히 매달려 있습니다.

그래서 일종의 순환이 끝없이 타작합니다.

코드 시작 부분에 #property strict를 추가하고 수정하면 경고가 많이 나옵니다.

마지막 함수에서 0으로 나누는 것은 꽤 가능합니다.

else 이후에는 첫 번째 줄만 실행되고 중괄호 블록은 고아로 남아 있습니다.

일반적으로 먼저 논리를 종이에 단어로 적어 보십시오. 그렇지 않으면 비틀거립니다.

 
Vitalie Postolache :


차트의 소수 자릿수에 따라 부동 소수점으로 명령을 실행한다고 가정했습니다.

NormalizeDouble (Ask+TakeProfit*Point(),Digits)

일부 행이 실행되지 않는 것을 어떻게 보았습니까?

 
trader781 :

차트의 소수 자릿수에 따라 부동 소수점으로 명령을 실행한다고 가정했습니다.

NormalizeDouble(Ask+TakeProfit*Point(),Digits)

일부 행이 실행되지 않는 것을 어떻게 보았습니까?

네. 논리에 큰 문제가 있습니다. 그리고 그것이 정수 변수에 쓰여진다면 결과는 어떻게 남을까요? 이 코드의 의미는 무엇입니까?

int lastlot,tp;
lastlot= NormalizeDouble (lastlot*Martin, 3 );
tp= NormalizeDouble (avg_price+TakeProfit* Point (), Digits );

코드의 일부가 고아이고 조건에 관계없이 실행된다는 것을 이해하는 것이 정말 그렇게 어렵습니까?

else //+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
 
Vitalie Postolache :

네. 논리에 큰 문제가 있습니다. 그리고 그것이 정수 변수에 쓰여진다면 결과는 어떻게 남을까요? 이 코드의 의미는 무엇입니까?

int lastlot,tp;
lastlot= NormalizeDouble (lastlot*Martin, 3 );
tp= NormalizeDouble (avg_price+TakeProfit* Point (), Digits );

코드의 일부가 고아이고 실행되지 않는다는 것을 이해하는 것이 정말 어렵습니까?

else //+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код, который никуда не идёт, сирота
}

중지

주문이 있는 경우

주문 유형을 찾았습니다

{

그런 다음 이 유형의 주문에 대해 작업이 수행됩니다.

}

아니다?

제로 디바이드가 어디에서 오는지 알 수 없습니다.
 
trader781 :

중지

주문이 있는 경우

주문 유형을 찾았습니다

{

그런 다음 이 유형의 주문에 대해 작업이 수행됩니다.

}

아니다?

네, 맞습니다. 이전 화자가 잘못 해석한 스타일로 코드를 작성했을 뿐입니다.

추가됨: 0 나누기 는 0으로 나누기이며 로그의 어느 줄을 알려줍니다.

 
trader781 :

중지

주문이 있는 경우

주문 유형을 찾았습니다

{

그런 다음 이 유형의 주문에 대해 작업이 수행됩니다.

}

아니다?

위에서 수정했습니다. else 이후는 조건에 따라 실행됩니다. 중괄호 블록은 별도로 나오므로 다른 것과는 관련이 없습니다.

제로 디바이드가 어디서 왔는지 알 수 없습니다

그 곳이

void ModifyOrders() //+------------модификация ввод тип
  {
   double avg_price; //+------------средняя цена
   price= 0 ; //+------------цена
   bool z; //+------------выход в переменную
   double orderlots= 0 ; //+------------лоты

   avg_price= NormalizeDouble (price/orderlots, Digits ); //+------------то средняя ценаравна цена деленная на лот
@Vitaly Muzichenko 여기에서 "오해"가 어디 있습니까? 우리는 사상가를 켭니다.