[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 132

 
Sergey_Rogozin :

그러면 아마도 다음과 같을 것입니다.

맞나요?

 int start()
 {
   ArrayResize (ValueArr,size);
   ValueArr[size- 1 ] = GetValue();
   size++;
   return ();
 }
 
alsu :

이제 모든 것을 이해합니다.

고맙습니다.

[Deleted]  
IgorM :

그런 내장 기능이 없습니다. 직접 작성해야 합니다. 여기에 예제를 보여 주었습니다. https://www.mql5.com/ru/forum/131277/page113


고맙습니다

[Deleted]  
IgorM :

그런 내장 함수가 없습니다. 직접 작성해야 합니다. 여기에 예제를 보여 주었습니다. https://www.mql5.com/en/forum/131277/page113

그리고 고문이 거래를 시작하기 위한 단 하나의 조건만 갖도록 처방하는 방법.
 

alsu :

 int start()
 {
   ArrayResize (ValueArr,size);
   ValueArr[size- 1 ] = GetValue();
   size++;
   return ();
 }

그러면 size-1이 필요하지 않습니다. 그렇지 않으면 첫 번째 실행에서 인덱싱이 0-1이 되고 배열 크기 는 0이 됩니다.

그러면 다음과 같습니다.

 int start()
 {
   size++;
   ArrayResize (ValueArr,size);
   ValueArr[size- 1 ] = GetValue();
   return ();
 }
 
artmedia70 :

그러면 size-1이 필요하지 않습니다. 그렇지 않으면 첫 번째 실행에서 인덱싱이 0-1이 되고 배열 크기는 0이 됩니다.

그러면 다음과 같습니다.



프로그램 시작 부분에 초기화가 있습니다. int size=1;

[Deleted]  
IgorM :

그런 내장 함수가 없습니다. 직접 작성해야 합니다. 여기에 예제를 보여 주었습니다. https://www.mql5.com/en/forum/131277/page113

이 코드를 첨부했을 때 엄청나게 많은 거래가 열리는 이유는 무엇입니까?
 
alsu :

프로그램 시작 부분에 초기화가 있습니다. int size=1;


나는 그것을 보지 못했다... 나는 크기가 원래 0이었던 그의 첫 번째 것만 기억한다.
 
sto_mat :

이 코드를 첨부했을 때 엄청나게 많은 거래가 열리는 이유는 무엇입니까?


이것은 될 수 없습니다, 왜냐하면 코드에서:

 double history(){
int time = 0 ; double profit = 0 ; //обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for ( int i = OrdersHistoryTotal();i>= 0 ;i--){ // Перебираем все закрытые ордера
   if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)){ //если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
     if (OrderSymbol() == Symbol ()){ //если выбранный ордер был открыт по нашей валютной паре
       if (time<OrderCloseTime()){ //(сравниваем его с хранящимся в пероеменной time) 
        time=OrderCloseTime(); //если время закрытия ордера больше - ложим его в переменную
        profit=OrderProfit(); //и заодно запоминаем прибыль ордера
      }
    }
  }
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
if (profit == 0 &&time == 0 ){ //действия если история чистая

}
if (profit >= 0 ){ //действия если последний ордер был прибыльным, или нулевым

}
if (profit <   0 ){ //действия если последний ордер был убыточным

}
return ( 0 );
}


거래 작업이 없습니다 https://book.mql4.com/en/trading/ordersend

[Deleted]  
IgorM :


이것은 될 수 없습니다. 왜냐하면 코드에서:

거래 작업이 없습니다 https://book.mql4.com/en/trading/ordersend


네 넣었어요

if(profit == 0 &&time == 0){//내역이 명확한 경우 작업

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,Bid-6*포인트);


반품;
}
if(profit >= 0){//마지막 주문이 수익성이 있거나 0인 경우 작업

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-12*Point,Bid+12*Point);


반품;
}
if(profit < 0 ){//마지막 주문이 수익성이 없는 경우의 작업

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+15*Point,Bid-15*Point);


반품;
}
리턴(0);
}