이 신비한 기호를 넣었는데 .. . . . 결과는 똑같습니다 ... 기능이 작동하지 않습니다
bool isCloseLastPosByStop( string sy, int op, int mn, double& ll)
{
double pt;
datetime t;
int dg, i, j=- 1 , k=OrdersHistoryTotal()- 1 ;
for (i=k; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber()!=mn) continue ; // если магик не тот, переходим к следующемуif (OrderSymbol()!=sy) continue ; // если символ не тот, переходим к следующемуif (OrderType()!=op) continue ; // если тип не тот, переходим к следующемуif (t<OrderCloseTime())
{
t=OrderCloseTime();
j=i;
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY))
{
dg=MarketInfo(OrderSymbol(), MODE_DIGITS); // количество знаков в цене символа ордера
pt=MarketInfo(OrderSymbol(), MODE_POINT); // размер пункта инструмента в валюте котировки ордераif ( MathAbs (OrderClosePrice()-OrderStopLoss())< 0.5 *pt) // Если закрыт по стопу
{
ll=OrderLots(); // записываем количество лотов в ордере, закрытом по стопуreturn ( true ); // возвращаем истину
}
}
return (False); // возвращаем ложь (позиции нету, либо не по стопу)
}
double Magic, Lot ;
int start()
{
double Price=iOpen ( Symbol (), 0 , 0 );
int last_order_bar = 0 ;
int ot = OrdersTotal ();
if (ot> 0 ) //если есть ордера в рынке
{
if ( OrderSelect (ot- 1 ,SELECT_BY_POS))
if (OrderType ()==OP_BUY || OrderType ()==OP_SELL )
last_order_bar = iBarShift ( Symbol (), 0 ,OrderOpenTime ());
}
int last_hist_order_bar = 0 ;
int oht = OrdersHistoryTotal();
if (oht> 0 )
{
if ( OrderSelect (oht- 1 ,SELECT_BY_POS, MODE_HISTORY))
if (OrderType ()==OP_BUY || OrderType ()==OP_SELL)
last_hist_order_bar = iBarShift ( Symbol (), 0 ,OrderOpenTime ());
}
if (ot== 0 )
//if (ot==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем баре // if (oht==0 || last_hist_order_bar>0) if (Bid ==Price)
//=============================================================== if (((Open[ 1 ]-Close[ 1 ])> 100 * Point )&&((Open[ 1 ]-Close[ 1 ])< 120 * Point ))
if (((High[ 1 ]-Open[ 1 ])> 40 * Point )&&((High[ 1 ]-Open[ 1 ])< 60 * Point ))
if (((Close[ 1 ]-Low[ 1 ])> 40 * Point )&&((Close[ 1 ]-Low[ 1 ])< 60 * Point ))
//============================================================Lot= MarketInfo( Symbol (), MODE_MINLOT); if (isCloseLastPosByStop( Symbol (), OP_BUY, Magic, Lot))
{
Lot=Lot* 2 ;
OrderSend ( Symbol (),OP_SELL,Lot,Bid, 1 ,Ask+ 1500 * Point ,Ask- 300 * Point , "jfh" , 123 );
}
else
{
Lot= 0.1 ;
OrderSend ( Symbol (),OP_SELL, 1 ,Bid,Lot,Ask+ 1500 * Point ,Ask- 300 * Point , "jfh" , 123 );
}
return ( 0 );
}
//============================================================ bool isCloseLastPosByStop( string sy, int op, int mn, double &ll)
{
double pt;
datetime t;
int dg, i, j=- 1 , k=OrdersHistoryTotal()- 1 ;
for (i=k; i>= 0 ; i--)
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber()!=mn) continue ; // если магик не тот, переходим к следующемуif (OrderSymbol()!=sy) continue ; // если символ не тот, переходим к следующемуif (OrderType()!=op) continue ; // если тип не тот, переходим к следующемуif (t<OrderCloseTime())
{
t=OrderCloseTime();
j=i;
}
}
}
if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY))
{
dg=MarketInfo(OrderSymbol(), MODE_DIGITS); // количество знаков в цене символа ордера
pt=MarketInfo(OrderSymbol(), MODE_POINT); // размер пункта инструмента в валюте котировки ордераif ( MathAbs (OrderClosePrice()-OrderStopLoss())< 0.5 *pt) // Если закрыт по стопу
{
ll=OrderLots(); // записываем количество лотов в ордере, закрытом по стопуreturn ( true ); // возвращаем истину
}
}
return (False); // возвращаем ложь (позиции нету, либо не по стопу)
}
double Magic, Lot;
int start()
{
double Price=iOpen (Symbol (),0,0);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS))
if (OrderType ()==OP_BUY || OrderType ()==OP_SELL )
last_order_bar = iBarShift (Symbol (),0,OrderOpenTime ());
}
int last_hist_order_bar = 0;
int oht = OrdersHistoryTotal();
if (oht>0)
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY))
if (OrderType ()==OP_BUY || OrderType ()==OP_SELL)
last_hist_order_bar = iBarShift (Symbol (),0,OrderOpenTime ());
}
if (ot==0)
//if (ot==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем баре // if (oht==0 || last_hist_order_bar>0) if (Bid ==Price)
//=============================================================== if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))
//============================================================
Lot= MarketInfo(Symbol(), MODE_MINLOT);
if (isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot))
{
Lot=Lot*2;
OrderSend(Symbol(),OP_SELL,Lot,Bid,1,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
else
{
Lot=0.1;
OrderSend(Symbol(),OP_SELL,1,Bid,Lot,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
return(0);
}
//============================================================ bool isCloseLastPosByStop(string sy, int op, int mn, double &ll)
{
double pt;
datetime t;
int dg, i, j=-1, k=OrdersHistoryTotal()-1;
for (i=k; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderMagicNumber()!=mn) continue; // если магик не тот, переходим к следующемуif (OrderSymbol()!=sy) continue; // если символ не тот, переходим к следующемуif (OrderType()!=op) continue; // если тип не тот, переходим к следующемуif (t<OrderCloseTime())
{
t=OrderCloseTime();
j=i;
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY))
{
dg=MarketInfo(OrderSymbol(), MODE_DIGITS); // количество знаков в цене символа ордера
pt=MarketInfo(OrderSymbol(), MODE_POINT); // размер пункта инструмента в валюте котировки ордераif (MathAbs(OrderClosePrice()-OrderStopLoss())< 0.5*pt) // Если закрыт по стопу
{
ll=OrderLots(); // записываем количество лотов в ордере, закрытом по стопуreturn(true); // возвращаем истину
}
}
return(False); // возвращаем ложь (позиции нету, либо не по стопу)
}
삭제된 이유 그대로 두면 모든 것이 작동할 것입니다.
이 신비한 기호를 넣었는데 .. . . . 결과는 똑같습니다 ... 기능이 작동하지 않습니다
.....이 표시가 무엇을 의미하는지 .... 교과서에서 그것에 대해 아무 것도 기억하지 못합니다.
참조로 전달하면 매개변수를 수정(변경)할 수 있습니다.
참조로 전달하면 매개변수를 수정(변경)할 수 있습니다.
감사합니다 앞으로 잘 기억하겠습니다.
그런데 왜 기능이 작동하지 않습니까?
올바른 길로 인도해 주시면 감사하겠습니다.감사합니다 앞으로 잘 기억하겠습니다.
그런데 왜 기능이 작동하지 않습니까?
올바른 길로 인도해 주시면 감사하겠습니다.최소 로트 반환
최소 로트 반환
돌아왔다.
이제 컴파일할 때 Lot 변수가 정의되지 않았다는 .... 오류가 발생합니다.
' ' - 변수가 정의되지 않았습니다. C:\Program Files\Alpari NZ MT4\experts\Previous CANDLE.mq4 (47, 39)
http://clip2net.com/s/61vFZH
시작 전에 정의되었지만.
돌아왔다.
이제 컴파일할 때 Lot 변수가 정의되지 않았다는 .... 오류가 발생합니다.
' ' - 변수가 정의되지 않았습니다. C:\Program Files\Alpari NZ MT4\experts\Previous CANDLE.mq4 (47, 39)
http://clip2net.com/s/61vFZH
시작 전에 정의되었지만.
모든 코드가 필요합니다
모든 코드가 필요합니다
모든 코드가 필요합니다
스톱으로 주문을 마감한 후 마지막으로 스톱으로 마감된 볼륨과 동일한 볼륨으로 다음 주문을 열어야 합니다.
주문 곱하기 2
그리고 LAST 주문이 다른 이유로 마감된 경우(정지가 아님) - 포지션 볼륨 은 0.1이어야 합니다.돌아왔다.
이제 컴파일할 때 Lot 변수가 정의되지 않았다는 .... 오류가 발생합니다.
' ' - 변수가 정의되지 않았습니다. C:\Program Files\Alpari NZ MT4\experts\Previous CANDLE.mq4 (47, 39)
http://clip2net.com/s/61vFZH
시작 전에 정의되었지만.
컴파일 중. 거기에 당신의 논리가 완전히 절름발이 인 것 같습니다 ... 물론, 나는 그것을 보지 않았습니다. 오류만 확인했습니다.
날짜 시간은 동일한 int입니다.