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://www.mql5.com/ru/forum/131277/page113
고맙습니다
그런 내장 함수가 없습니다. 직접 작성해야 합니다. 여기에 예제를 보여 주었습니다. https://www.mql5.com/en/forum/131277/page113
그리고 고문이 거래를 시작하기 위한 단 하나의 조건만 갖도록 처방하는 방법.
alsu :
그러면 size-1이 필요하지 않습니다. 그렇지 않으면 첫 번째 실행에서 인덱싱이 0-1이 되고 배열 크기 는 0이 됩니다.
그러면 다음과 같습니다.
그러면 size-1이 필요하지 않습니다. 그렇지 않으면 첫 번째 실행에서 인덱싱이 0-1이 되고 배열 크기는 0이 됩니다.
그러면 다음과 같습니다.
프로그램 시작 부분에 초기화가 있습니다. int size=1;
그런 내장 함수가 없습니다. 직접 작성해야 합니다. 여기에 예제를 보여 주었습니다. https://www.mql5.com/en/forum/131277/page113
이 코드를 첨부했을 때 엄청나게 많은 거래가 열리는 이유는 무엇입니까?
프로그램 시작 부분에 초기화가 있습니다. int size=1;
이 코드를 첨부했을 때 엄청나게 많은 거래가 열리는 이유는 무엇입니까?
이것은 될 수 없습니다, 왜냐하면 코드에서:
거래 작업이 없습니다 https://book.mql4.com/en/trading/ordersend
이것은 될 수 없습니다. 왜냐하면 코드에서:
거래 작업이 없습니다 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);
}