//---- input parameters extern int Fast_MACD=12; extern int Slow_MACD=24; extern int Signal_MACD=6; double a,mas_1[]; int i=1; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //----
//---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { a=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,0),5); if (a>0) { Print ("MACD выше 0 начинаю считывать бары"); while (NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5)>0) { mas_1[i]=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5); Print (GetLastError()); i++; } Print ("В массив добавлено "+ArrayRange(mas_1,0)+" баров"); } return(0); } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| nax.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"
//---- input parameters
extern int Fast_MACD=12;
extern int Slow_MACD=24;
extern int Signal_MACD=6;
double a,mas_1[];
int i=1;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
a=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,0),5);
if (a>0)
{
Print ("MACD выше 0 начинаю считывать бары");
while (NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5)>0)
{
mas_1[i]=NormalizeDouble(iMACD(Symbol(),NULL,Fast_MACD,Slow_MACD,Signal_MACD,PRICE_CLOSE,MODE_MAIN,i),5);
Print (GetLastError());
i++;
}
Print ("В массив добавлено "+ArrayRange(mas_1,0)+" баров");
}
return(0);
}
//+------------------------------------------------------------------+
무엇이 잘못되었습니까? 배열에 아무것도 추가되지 않은 이유는 무엇입니까?
배열의 크기는 어디에 있습니까?
배열의 크기는 어디에 있습니까?
배열의 크기가 이전에 알려지지 않은 경우 어떻게??
배열의 크기를 미리 알 수 없다면 어떻게??
그런 다음 동적으로 만들고 필요한 경우 크기를 늘려야 합니다.
그런 다음 동적으로 만들고 필요한 경우 크기를 늘려야 합니다.
그리고 어디에 앉을지 말해주지 않습니까?
다시 안녕! 티켓이나 포지션 번호를 결정하는 방법을 알려주시겠습니까?
int 주문 티켓( )
현재 선택한 주문에 대한 티켓 번호를 반환합니다.
OrderSelect() 함수를 사용하여 주문을 미리 선택해야 합니다.
int 주문 티켓( )
현재 선택한 주문에 대한 티켓 번호를 반환합니다.
OrderSelect() 함수를 사용하여 주문을 미리 선택해야 합니다.
그리고 그 번호를 모르면.. 종류, 로트, 매직넘버, 포지션 화폐만 있을뿐.. 이 매직넘버로 이 주문이 먼저 오픈된걸로도 알려져있습니다..
int init() { return(0); } int deinit() { return(0); } int start() if (OrdersTotal()==0) { if (iRSI(NULL,0,14,PRICE_CLOSE,1)>71 && iDeMarker(NULL,0,13,1)>0.71) OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+0.001,Bid-0.01,"",666,0,Green); if (iRSI(NULL,0,14,PRICE_CLOSE,1)<29 && iDeMarker(NULL,0,13,1)<0.29) OrderSend(Symbol(),OP_BUY,lot,Ask,3,Bid-0.001,Bid+0.01,"",666,0,Blue); } else for (int i=1; i<= OrdersTotal(); i++) { if (OrderSelect(i-1,SELECT_BY_POS)==true) { if(OrderType()==OP_SELL) { if ((OrderStopLoss()- 0.001) < Bid) { if (OrderStopLoss()>OrderOpenPrice()) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Green);} else OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()-0.001),OrderTakeProfit(),Green); } } } else { if(OrderType()==OP_BUY) { if ((OrderStopLoss()+0.001) < Bid) { if (OrderStopLoss()<OrderOpenPrice()){ OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),Blue);} else OrderModify(OrderTicket(),OrderOpenPrice(),(OrderStopLoss()+0.001),OrderTakeProfit(),Blue); } } } } return(0); }
내 첫 번째 고문의 코드는 RSI 및 Dem에서 작동합니다. 이 문제는 어떤 식으로든 순서를 변경하지 않습니다. 정지 .. 항상 잘못된 정류장 에서 맹세합니다 ... 이동 정지에 대한 다른 코드를 찾았습니다 .. 여전히 동일한 오류입니다.
미리 감사드립니다.