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

 
trader781 :

좋아 이렇게 하자

for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
         && ( OrderMagicNumber ()==Magic) && ( OrderType ()< 2 ))
         orders[count1].Ticket= OrderTicket ();
         orders[count1].lot= OrderLots ();
         orders[count1].orderopenprice= OrderOpenPrice ();
         orders[count1].ordertype= OrderType ();
         orders[count1].profit= OrderProfit ();
         orders[count1].stoploss= OrderStopLoss ();
         count1++;
     }

오른쪽?

중괄호는 여전히 필요합니다. 그렇지 않으면 if () 뒤의 첫 번째 줄만 작동합니다. 필요하지 않은 브래킷이 많이 있거나 필요한 위치에 브래킷이 없습니다. 이것은 때때로 매우 강력하게 프로그램의 논리를 위반합니다. 카운터는 전역적일 필요는 없지만 그렇게 중요하지는 않습니다.

for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderSymbol ()== Symbol ()
         && O rderMagicNumber ()==Magic && OrderType ()< 2 )
         {
         orders[count1].Ticket= OrderTicket ();
         orders[count1].lot= OrderLots ();
         orders[count1].orderopenprice= OrderOpenPrice ();
         orders[count1].ordertype= OrderType ();
         orders[count1].profit= OrderProfit ();
         orders[count1].stoploss= OrderStopLoss ();
         count1++;
         }
}
 
sile :
조건을 기록하는 데 도움이 됩니다. 계정 의 무료 자금 금액 이 보증금의 50% 미만이면 {action} MT5

어떤 보증금에서? 주요한? 아니면 현재 잔액에서?

잔액과 비교하면 다음과 같습니다.

if ( AccountInfoDouble( ACCOUNT_MARGIN_FREE )/ AccountInfoDouble ( ACCOUNT_BALANCE )<0.5) {действие}
 
Vitalie Postolache :


그래서 그는 mt5 원했다

그리고 내 것에 대해, 밝혀진대로 무언가를 적어 놓으십시오. 카운터를 ontik의 맨 처음에 놓고 작업 할 수 있습니다.

이제 내 경우에 무언가를 꺼내는 방법?

배열이 2차원 이상인 경우 더욱 그렇습니다(쓰기 및 검색에 차이가 있음)

지금 이 순간에 대해 조금 말씀해 주시겠습니까?
 
trader781 :

좋아 이렇게 하자

struct myorder
{
int     Ticket;
double orderopenprice;
int    ordertype;
double profit;
double stoploss;
double   lot;
};

myorder orders[];

int i;
int count1= 0 ;
void CalcOrders()
{
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
         && ( OrderMagicNumber ()==Magic) && ( OrderType ()< 2 ))
         orders[count1].Ticket= OrderTicket ();
         orders[count1].lot= OrderLots ();
         orders[count1].orderopenprice= OrderOpenPrice ();
         orders[count1].ordertype= OrderType ();
         orders[count1].profit= OrderProfit ();
         orders[count1].stoploss= OrderStopLoss ();
         count1++;
     }
}    


오른쪽?

아니오, 옳지 않습니다.

귀하의 주문[] 배열에 0 값이 있습니다. 데이터를 어디에 쓸 것인가? 크기가 0인 배열에서? 작동 안 할 것이다. count1 + 1 값만큼 배열 크기를 늘려야 합니다 . 이는 배열에 쓴 후 카운터가 증가한 경우입니다. 일반적으로 쓰기 전에 카운터를 증가시킨 다음 배열의 크기를 카운터의 크기만큼 늘린 다음 인덱스 [count1-1]에 값을 씁니다. 그리고 위에서 올바르게 언급했듯이 조건을 확인한 후 다른 모든 작업을 중괄호로 묶어야 합니다.

왜 그렇게 기본적인 지식도 아이디어도 없이 무언가를 하려고 하는 걸까? 그냥 "행운"?

 
안녕하세요. 이 표시기의 TF를 변경할 수 있는 표시기 설명 끝에 삽입할 수 있는 범용 코드가 있습니까(예: M5에서 M1 참조)?
 
Artyom Trishkin :

아니오, 옳지 않습니다.

귀하의 주문[] 배열이 null입니다. 데이터를 어디에 쓸 것인가? 크기가 0인 배열에서? 작동 안 할 것이다. count1 + 1 값만큼 배열 크기를 늘려야 합니다. 이는 배열에 쓴 후 카운터가 증가한 경우입니다. 일반적으로 쓰기 전에 카운터를 증가시킨 다음 배열의 크기를 카운터의 크기만큼 늘린 다음 인덱스 [count1-1]에 값을 씁니다. 그리고 위에서 올바르게 언급했듯이 조건을 확인한 후 다른 모든 작업을 중괄호로 묶어야 합니다.

왜 그렇게 기본적인 지식도 아이디어도 없이 무언가를 하려고 하는 걸까? 그냥 "행운"?

누군가의 물질 동화 능력에 썩은 피슈나미와 썩은 계란을 던지지 맙시다. 내 문제를 해결하기 위한 당신의 제안은 구조의 배열을 구축하는 방법을 통해서였습니다. 나는 교과서를 펼치고 내가 이해할 수 있는 한 리벳을 박았다. 그리고 나는 모든 사람들이 그것이 얼마나 정확한지 볼 수 있도록 여기에 코드를 던졌다. 내가 바로 완벽한 선택을 할 것이라고 생각하지 않습니까?
 
trader781 :
누군가의 물질 동화 능력에 썩은 피슈나미와 썩은 계란을 던지지 맙시다. 내 문제를 해결하기 위한 당신의 제안은 구조의 배열을 구축하는 방법을 통해서였습니다. 나는 교과서를 펼치고 내가 이해할 수 있는 한 리벳을 박았다. 그리고 나는 모든 사람들이 그것이 얼마나 정확한지 볼 수 있도록 여기에 코드를 던졌다. 내가 당장 완벽한 선택을 할 거라고 생각하지 않니?
그런 폭력적인 환상을 본 후에는 도움을 중단해야 합니다. 마지막으로 묻습니다. 알고리즘을 종이에 적고 연필로 여러 번 덧바르십시오. 배열의 값과 크기를 기록해 두십시오. 루프의 각 반복에서 무엇과 어디에 기록될 것입니다. 그리고 적절하다고 생각하는 코드 조각을 찾지 마십시오.
특히 사람이 정말로 배우고 싶지 않을 때 가르치는 것은 어렵다는 것을 이해하십시오.
 
Artyom Trishkin :
그런 폭력적인 환상을 본 후에는 도움을 중단해야 합니다. 마지막으로 묻습니다. 알고리즘을 종이에 적고 연필로 여러 번 덧바르십시오. 배열의 값과 크기를 기록해 두십시오. 루프의 각 반복에서 무엇과 어디에 기록될 것입니다. 그리고 적절하다고 생각하는 코드 조각을 찾지 마십시오.
특히 사람이 정말로 배우고 싶지 않을 때 가르치는 것은 어렵다는 것을 이해하십시오.

Artyom, 이것은 이해할 수 있지만 이 경우에도 이해할 수 있습니다. 아무 것도 작동하지 않으며 현재 버전에 없을 것입니다. 여러 페이지에서 나는 이 배열의 원하는 요소를 빼내기 위해 명령 자체가 필요하다는 사실과 5차 주문에 대한 손절매와 같이 이 경우에 구체적으로 어떻게 작성되었는지 전혀 모른다는 사실에 대해 글을 써왔습니다.

연필과 잎에 대해 - 봇은 이미 한 달 동안 준비되었으며 모든 악기에서 완벽하게 병합됩니다. 고르지 않은 평균 분기를 추가하여 수정하고 싶습니다.

 
trader781 :

Artyom, 이것은 이해할 수 있지만 이 경우에도 이해할 수 있습니다. 아무 것도 작동하지 않으며 현재 버전에 없을 것입니다. 여러 페이지에서 나는 이 배열의 원하는 요소를 빼내기 위해 명령 자체가 필요하다는 사실과 5차 주문에 대한 손절매와 같이 이 경우에 구체적으로 어떻게 작성되었는지 전혀 모른다는 사실에 대해 글을 써왔습니다.

연필과 잎에 대해 - 봇은 이미 한 달 동안 준비되었으며 모든 악기에서 완벽하게 병합됩니다. 고르지 않은 평균 분기를 추가하여 수정하고 싶습니다.

그런 명령은 없습니다. 직접 만들어야 합니다. 저것들. - 기능.
 
Artyom Trishkin :
그런 명령은 없습니다. 직접 만들어야 합니다. 저것들. - 기능.

좋아, 그러면 내가 이해하는 한 원하는 기능을 반환하는 세 가지 다른 사용자 정의 기능이 있을 것입니다(세 가지 다른 매개변수를 찾는 경우)

배열 정렬

~ 후에

원하는 숫자로 ArrayBsearch

그러면 이것은 어떻습니까?

즉, 배열에서 구조의 요소로의 전환
사유: