for (int i=0; i<OrdersHistoryTotal(); i++)// 모든 터미널 주문에 대해 if(주문 선택(i, SELECT_BY_POS, MODE_HISTORY)==true)
매직넘버로 필터링 후
if (OrderMagicNumber()==12)
필터는 3가지 위치를 충족하며 마지막으로 닫힌 위치만 필요합니다.
마지막 하나만 남기는 방법을 알 수 없습니까?
감사해요
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает номер бара закрытия последней позиции или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| op - операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfBarCloseLastPos( string sy= "0" , int tf= 0 , int op=- 1 , int mn=- 1 ) {
datetime t;int i, k=OrdersHistoryTotal();
if (sy== "" || sy== "0" ) sy= Symbol ();
for (i= 0 ; i<k; i++) {
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op< 0 || OrderType()==op) {
if (mn< 0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return (iBarShift(sy, tf, t, True));
}
{ 더블 포인트 =MarketInfo(Symbol(),MODE_POINT);//포인트 쿼리 이중 Free=AccountFreeMargin(); 이중 One_Lot = MarketInfo(Symbol(),MODE_MARGINREQUIRED); 더블 스텝 =MarketInfo(Symbol(),MODE_LOTSTEP); 이중 로트 = MathFloor(무료*MaxRisk/100/One_Lot/Step)*Step; int pos,total=OrdersTotal(); //----
또 하나의 골칫거리가 남았는데, 정지와 새 포지션을 여는 조건은 동일하지만 쿠데타가 발생하지 않고 포지션 폐쇄만 일어나는 영역이 있다.
이것은 자세히 연구해야 하며, EA에서 매수 및 매도를 여는 조건이 상호 배타적이지 않기 때문에 이러한 상황이 발생할 수 있습니다. 원칙에 따라 테스터에서 필요한 변수의 값을 추적하십시오.
if(Time[0]=='время_нужного_бара') //чтоб не засорять логи берем на конкретном баре - посмотрите на картинке, где именно ошибка
{
Print("переменная=", значение);
}
문제 해결을 도와주세요
모든 마감된 위치에 대해 선택합니다.
for (int i=0; i<OrdersHistoryTotal(); i++)// 모든 터미널 주문에 대해
if(주문 선택(i, SELECT_BY_POS, MODE_HISTORY)==true)
매직넘버로 필터링 후
if (OrderMagicNumber()==12)
필터는 3가지 위치를 충족하며 마지막으로 닫힌 위치만 필요합니다.
마지막 하나만 남기는 방법을 알 수 없습니까?
감사해요
나는 그것을 반복한다 매우 필요하다
문제 해결을 도와주세요
모든 마감된 위치 에 대해 선택합니다.
for (int i=0; i<OrdersHistoryTotal(); i++)// 모든 터미널 주문에 대해
if(주문 선택(i, SELECT_BY_POS, MODE_HISTORY)==true)
매직넘버로 필터링 후
if (OrderMagicNumber()==12)
필터는 3가지 위치를 충족하며 마지막으로 닫힌 위치만 필요합니다.
마지막 하나만 남기는 방법을 알 수 없습니까?
감사해요
도와주세요, 제발! 이전 주문이 마감된 직후 Tp 또는 SL 가격으로 주문을 개설해야 합니다.
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"
#프로퍼티쇼_확인
extern int MaxRisk=3;
extern bool 구매=거짓; //구매 주문을 열기 위해
extern bool Sell=true; //판매 주문을 열기 위해
외부 정수 MagicNumber=7749;
외부 정수 TP=210;
외부 int SL=420;
{
더블 포인트 =MarketInfo(Symbol(),MODE_POINT);//포인트 쿼리
이중 Free=AccountFreeMargin();
이중 One_Lot = MarketInfo(Symbol(),MODE_MARGINREQUIRED);
더블 스텝 =MarketInfo(Symbol(),MODE_LOTSTEP);
이중 로트 = MathFloor(무료*MaxRisk/100/One_Lot/Step)*Step;
int pos,total=OrdersTotal();
//----
if(구매==true && OrdersTotal()<=1)
{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-SL*Point,Ask+TP*Point,"777"+ Symbol(), MagicNumber, 0, DarkGreen);
구매=거짓;
}
if(판매==true && OrdersTotal()<=1)
{
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+SL*Point,Bid-TP*Point,"4949"+ Symbol(), MagicNumber, 0, DarkGreen);
매도=거짓;
}
(pos=0; pos<전체; pos++)
if(주문 선택(pos,SELECT_BY_POS)==true)
if(OrdersTotal()==OP_BUY)
if(PRICE_CLOSE==OrderTakeProfit()) 매수=참;
if(PRICE_CLOSE==OrderStopLoss()) 판매=참;
}
}
if (OrderSelect(pos,SELECT_BY_POS)==true)
if (OrdersTotal()==OP_SELL)
{
if(PRICE_CLOSE==OrderStopLoss()) 구매=참;
if(PRICE_CLOSE==OrderTakeProfit()) 판매=참;
}
} }
//----
반환(0);
}
//+----------------------------------------------- --------------------+
여러분, 여기에 질문이 있습니다. 여기에 구매 신호가 있습니다. 고문이 주문을 열려고하지만 가격이 변경되고 오류가 잘못된 가격으로 나타납니다. 이 문제를 해결하는 방법, 그가 구매할 때까지 그는 무엇을 사려고 할 것입니까? ?
서곤 했다
나는 5 기호가 있기 때문에 30을 추가했지만 아무 소용이 없습니다
나는 그것을 반복한다 매우 필요하다
문제 해결을 도와주세요
모든 마감된 위치에 대해 선택합니다.
끝에서 시작하여 가장 먼저 맞는 것이 하나입니다.
for (int i=OrdersHistoryTotal()-1;i>=0; i--)//
if( 주문 선택 (i, SELECT_BY_POS, MODE_HISTORY )==true)
또 하나의 골칫거리가 남았는데, 정지와 새 포지션을 여는 조건은 동일하지만 쿠데타가 발생하지 않고 포지션 폐쇄만 일어나는 영역이 있다.
이것은 자세히 연구해야 하며, EA에서 매수 및 매도를 여는 조건이 상호 배타적이지 않기 때문에 이러한 상황이 발생할 수 있습니다. 원칙에 따라 테스터에서 필요한 변수의 값을 추적하십시오.
여러분, 여기에 질문이 있습니다. 여기에 구매 신호가 있습니다. 고문이 주문을 열려고하지만 가격이 변경되고 오류가 잘못된 가격으로 나타납니다. 이 문제를 해결하는 방법, 그가 구매할 때까지 그는 무엇을 사려고 할 것입니까? ?
서곤 했다
나는 5 기호가 있기 때문에 30을 추가했지만 아무 소용이 없습니다
이것은 자세히 연구해야 하며, EA에서 매수 및 매도를 여는 조건이 상호 배타적이지 않기 때문에 이러한 상황이 발생할 수 있습니다. 원칙에 따라 테스터에서 필요한 변수의 값을 추적하십시오.
귀하의 질문과 관련된 내용에 밑줄을 긋습니다.