ZZ 표시기에서 EA 기반을 하려고 했습니다... ZZ 표시기가 값을 얻을 때 구매 주문을 열 수 있습니다. 그러나 주문이 마감되지 않았습니다 ...
도와주세요?
고급에 감사합니다...
정수 MagicN = 1453;
extern int Barras=5; // 칸티다드 드 바라스 외부 정수 y = 5; //------------------------------------------------ -------------------- extern 이중 로트 = 0.01; extern 이중 미끄러짐 = 3; 외부 이중 기간1 = 5; 외부 문자열 Dev_Step_1 ="0,5"; extern int Symbol_1_Kod = 140;
int start() // 특수 함수. 시작() { //------------------------------------------------ -------------------- Fun_NuevaBarra(); // 함수 호출 if (GV_Flag_NuevaBarra==false) // 시 노 건초 누에바 바라.. 반품; // ..반품 //================================================== =========================== int IndMin = ArrayMinimum(낮음, 바라스, 1); int IndMax =ArrayMaximum(높음, 바라스, 1); 이중 ZZ, CC;
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Jeaa",MagicN,0,Blue);
Print("Orden de Compra Envirada: xxxx");// falta colocar el OrderTicket() } //================================================== ===========================
void Fun_NuevaBarra() // 감지 기능에 대한 설명 .. { // .. 우나 누에바 바라 정적 날짜 시간 NewTime=0; // 변수 que almacena fecha y hora GV_Flag_NuevaBarra=거짓; // Inicializa nueva barra a falso (no hay nueva barra) if(NewTime!=Time[0]) // 현재 존재하는 누에바 바라 엘 데이토 es distinto de cero.. { NewTime=시간[0]; //.. y en ese caso se registra el hora y fecha de la.. GV_Flag_NuevaBarra=참; //nueva barra y se activa el flag que señaliza la… //existencia de una nueva barra
//--- 입력 매개변수 --- 입력 더블 Lotes=0.01; 입력 정수 MagicNumber=1453; 입력 int Barras=5; 입력 정수 y=5; 이중 입력 주기1= 5; 입력 문자열 Dev_Step_1="0,5"; 입력 정수 Symbol_1_Kod=140; 입력 int 미끄러짐=3;
//+----------------------------------------------- -------------------+ //| 전문가 초기화 기능 | //+----------------------------------------------- -------------------+ int OnInit() { 반환(INIT_SUCCEEDED); } //+----------------------------------------------- -------------------+ //| 전문적인 초기화 해제 기능 | //+----------------------------------------------- -------------------+ 무효 OnDeinit(const int 이유) {
} //+----------------------------------------------- -------------------+ //| 전문가 틱 기능 | //+----------------------------------------------- -------------------+ 무효 OnTick() { //--- 긴 TicketEnUso = 티켓(); if (TicketEnUso>0) // 중요한 건... 운영에 대한 중요한 통제... { if (OrderSelect(TicketEnUso,SELECT_BY_TICKET, MODE_TRADES)) { if (OrderType()==OP_BUY) // buscar una salida por debajo de un promedio { if (Open[y]==ZZ(Period1)) Cierre(TicketEnUso); } if (OrderType()==OP_SELL) // 버스카 una salida por encima de un promedio { if (Close[y]==CC(Period1)) Cierre(TicketEnUso); } } } if (TicketEnUso<1) // 건초 거래가 불가능합니다. { if (닫기[y]==CC(기간1)) { Abre(OP_BUY); Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ(Period1),Digits),", Precio= ",DoubleToString(Close[y],Digits)); 인쇄("===COMPRA==="); } if (열기[y]==ZZ(기간1)) { Abre(OP_SELL); Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC(Period1),Digits),", Precio= ",DoubleToString(Open[y],Digits)); 인쇄("===VENTA==="); }
이중 CC(int Periodos) { return (iCustom(Symbol(),0,"3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,0,y)); }
//================================================== ================================================ 긴 티켓() { (int o=0; o<OrdersTotal(); o++) { if (OrderSelect(o,SELECT_BY_POS,MODE_TRADES)) { if (MagicNumber == OrderMagicNumber()) return(OrderTicket()); } } 리턴(0); }
void Abre(int Tipo) { if (AccountFreeMargin()<(1000*Lotes))// filtro operaciones que no podria correr por falta de margen disponible { Print("건초 식당이 없습니다. Free Margin= ",AccountFreeMargin()); 반품; } // 선택 가능한 precio por Operación 더블 프레시오=0; if(Tipo==OP_BUY) 프레시오=묻다; else Precio=입찰가; 재설정 마지막 오류(); if (OrderSend(NULL,Tipo,Lotes,Precio,Slippage,0,0,NULL,MagicNumber,0,clrNONE)<1) Print (GetLastError());// 10 es fracciones de pips... }
void Cierre(긴 티켓 번호) { 더블 프레시오=0; if (OrderSelect(TicketNo,SELECT_BY_TICKET,MODE_TRADES)) { if(OrderType()==OP_BUY) Precio=입찰가; else Precio=Ask;//selecciono precio de salida segun tipo de Operación ResetLastError();//오류 재설정 if(OrderClose(TicketNo,Lotes,Precio,Slippage,clrNONE)) Print(GetLastError());//임시 오류 처리 } }
친애하는 mladen,
나는 당신이 아주 잘되기를 바랍니다.
ZZ 표시기에서 EA 기반을 하려고 했습니다... ZZ 표시기가 값을 얻을 때 구매 주문을 열 수 있습니다. 그러나 주문이 마감되지 않았습니다 ...
도와주세요?
고급에 감사합니다...
정수 MagicN = 1453;
extern int Barras=5; // 칸티다드 드 바라스
외부 정수 y = 5;
//------------------------------------------------ --------------------
extern 이중 로트 = 0.01;
extern 이중 미끄러짐 = 3;
외부 이중 기간1 = 5;
외부 문자열 Dev_Step_1 ="0,5";
extern int Symbol_1_Kod = 140;
//------------------------------------------------ --------------------
bool GV_Flag_NuevaBarra=거짓; // 플래그 드 우나 누에바 바라
//================================================== ========================
int start() // 특수 함수. 시작()
{
//------------------------------------------------ --------------------
Fun_NuevaBarra(); // 함수 호출
if (GV_Flag_NuevaBarra==false) // 시 노 건초 누에바 바라..
반품; // ..반품
//================================================== ===========================
int IndMin = ArrayMinimum(낮음, 바라스, 1);
int IndMax =ArrayMaximum(높음, 바라스, 1);
이중 ZZ, CC;
이중 매수=낮음[IndMin];
이중 XX=높음[IndMax];
ZZ=iCustom(Symbol(),0,"3_Level_ZZ_Semafor",Period1,Dev_Step_1,Symbol_1_Kod,0,y);
CC=iCustom(Symbol(),0,"3_Level_ZZ_Semafor",Period1,Dev_Step_1,Symbol_1_Kod,1,y);
if (구매 == ZZ)
{
Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ,Digits),", Precio= ",DoubleToString(Buy,Digits) );
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Jeaa",MagicN,0,Blue);
Print("Orden de Compra Envirada: xxxx");// falta colocar el OrderTicket()
}
//================================================== ===========================
경우 (XX == CC)
{
if(OrderMagicNumber()== MagicN)
{ //---- 주문 유형 확인
if(주문 유형()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC,Digits),", Precio= ",DoubleToString(XX,Digits) );
인쇄("=====ORDEN CERRADA=====");
}
}
}
//================================================== ===============================
반품;
}
//================================================== ===========================
void Fun_NuevaBarra() // 감지 기능에 대한 설명 ..
{ // .. 우나 누에바 바라
정적 날짜 시간 NewTime=0; // 변수 que almacena fecha y hora
GV_Flag_NuevaBarra=거짓; // Inicializa nueva barra a falso (no hay nueva barra)
if(NewTime!=Time[0]) // 현재 존재하는 누에바 바라 엘 데이토 es distinto de cero..
{
NewTime=시간[0]; //.. y en ese caso se registra el hora y fecha de la..
GV_Flag_NuevaBarra=참; //nueva barra y se activa el flag que señaliza la…
//existencia de una nueva barra
}
}
//------------------------------------------------ --------------------
내가 볼 때 당신은 잘못된 조건을 테스트하고 있습니다
버퍼 1의 값과 너무 3_Level_ZZ_Semafor의 값은 같을 수 없습니다(다른 위치에 표시됨).
제발, 친애하는 선생님
코드를 다음과 같이 변경합니다.
친애하는 친구, mladen 감사합니다.
도와 주셔서 정말로 고맙습니다.
코드를 다음과 같이 변경합니다.
친애하는 mladen
코드는 작동하지 않습니다. 오류가 있습니다. "입력"을 " MA_TF"에 대한 "extern"으로 변경했습니다.
그런 다음 작동했지만 문제는 여전히 남아있었습니다. 차트 끝의 지표를 이동(수송)하지 않는다는 뜻입니다. 포지티브 시프트가 작동하지 않습니다.
그러나 부정적인 것은 잘 작동합니다.
다시 감사합니다.
친애하는 mladen
코드는 작동하지 않습니다. 오류가 있습니다. "입력"을 " MA_TF"에 대한 "extern"으로 변경했습니다.
그런 다음 작동했지만 문제는 여전히 남아있었습니다. 차트 끝의 지표를 이동(수송)하지 않는다는 뜻입니다. 포지티브 시프트가 작동하지 않습니다.
그러나 부정적인 것은 잘 작동합니다.
다시 감사합니다.
전혀 문제없이 작동합니다
무엇을 테스트했는지 모르지만 이것은 테스트에 사용한 것(첨부)이며 테스트 결과는 다음과 같습니다(양성 및 음성 테스트 모두 포함). 따라서 모든 것이 예상대로 작동하고 설명합니다.
전혀 문제없이 작동합니다
무엇을 테스트했는지 모르지만 이것은 테스트에 사용한 것(첨부)이며 테스트 결과는 다음과 같습니다(양성 및 음성 테스트 모두 포함). 따라서 모든 것이 예상대로 작동하고 설명합니다.
친애하는 MLADEN
당신이 옳습니다. 그것은 내 실수였습니다.
도와준 친구에게 다시 한 번 감사드립니다.
내가 볼 때 당신은 잘못된 조건을 테스트하고 있습니다
버퍼 1의 값과 너무 3_Level_ZZ_Semafor의 값은 같을 수 없습니다(다른 위치에 표시됨).
사랑하는 멜란덴...
귀하의 의견에 감사드립니다...
MagicNumber를 사용하도록 EA를 수정했지만... 사용자 지정 표시기 가 메모리를 가득 찼습니다.
2016.09.18 00:33:10.627 사용자 지정 표시기 3_Level_ZZ_Semafor EURUSD,M5에 대한 1039개의 막대에 대한 메모리가 충분하지 않습니다.
어떡해? 고급 감사합니다... 예수...
//+----------------------------------------------- -------------------+
//| MA_jeaa_EA.mq4 |
//+----------------------------------------------- -------------------+
#property copyright "예수 아세도"
//--- 입력 매개변수 ---
입력 더블 Lotes=0.01;
입력 정수 MagicNumber=1453;
입력 int Barras=5;
입력 정수 y=5;
이중 입력 주기1= 5;
입력 문자열 Dev_Step_1="0,5";
입력 정수 Symbol_1_Kod=140;
입력 int 미끄러짐=3;
//+----------------------------------------------- -------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- -------------------+
int OnInit()
{
반환(INIT_SUCCEEDED);
}
//+----------------------------------------------- -------------------+
//| 전문적인 초기화 해제 기능 |
//+----------------------------------------------- -------------------+
무효 OnDeinit(const int 이유)
{
}
//+----------------------------------------------- -------------------+
//| 전문가 틱 기능 |
//+----------------------------------------------- -------------------+
무효 OnTick()
{
//---
긴 TicketEnUso = 티켓();
if (TicketEnUso>0) // 중요한 건... 운영에 대한 중요한 통제...
{
if (OrderSelect(TicketEnUso,SELECT_BY_TICKET, MODE_TRADES))
{
if (OrderType()==OP_BUY) // buscar una salida por debajo de un promedio
{
if (Open[y]==ZZ(Period1)) Cierre(TicketEnUso);
}
if (OrderType()==OP_SELL) // 버스카 una salida por encima de un promedio
{
if (Close[y]==CC(Period1)) Cierre(TicketEnUso);
}
}
}
if (TicketEnUso<1) // 건초 거래가 불가능합니다.
{
if (닫기[y]==CC(기간1))
{
Abre(OP_BUY);
Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ(Period1),Digits),", Precio= ",DoubleToString(Close[y],Digits));
인쇄("===COMPRA===");
}
if (열기[y]==ZZ(기간1))
{
Abre(OP_SELL);
Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC(Period1),Digits),", Precio= ",DoubleToString(Open[y],Digits));
인쇄("===VENTA===");
}
}
}
//================================================== ================================================
이중 ZZ(int Periodos)
{
return (iCustom(Symbol(),0,"3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,1,y));
}
이중 CC(int Periodos)
{
return (iCustom(Symbol(),0,"3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,0,y));
}
//================================================== ================================================
긴 티켓()
{
(int o=0; o<OrdersTotal(); o++)
{
if (OrderSelect(o,SELECT_BY_POS,MODE_TRADES))
{
if (MagicNumber == OrderMagicNumber()) return(OrderTicket());
}
}
리턴(0);
}
void Abre(int Tipo)
{
if (AccountFreeMargin()<(1000*Lotes))// filtro operaciones que no podria correr por falta de margen disponible
{
Print("건초 식당이 없습니다. Free Margin= ",AccountFreeMargin());
반품;
}
// 선택 가능한 precio por Operación
더블 프레시오=0;
if(Tipo==OP_BUY) 프레시오=묻다; else Precio=입찰가;
재설정 마지막 오류();
if (OrderSend(NULL,Tipo,Lotes,Precio,Slippage,0,0,NULL,MagicNumber,0,clrNONE)<1) Print (GetLastError());// 10 es fracciones de pips...
}
void Cierre(긴 티켓 번호)
{
더블 프레시오=0;
if (OrderSelect(TicketNo,SELECT_BY_TICKET,MODE_TRADES))
{
if(OrderType()==OP_BUY) Precio=입찰가; else Precio=Ask;//selecciono precio de salida segun tipo de Operación
ResetLastError();//오류 재설정
if(OrderClose(TicketNo,Lotes,Precio,Slippage,clrNONE)) Print(GetLastError());//임시 오류 처리
}
}
//================================================== ========================
안녕 mladen, 이 표시기를 다시 칠하지 않고 mtf로 만들 수 있습니까????... 감사합니다....
이름이 바뀌고 디컴파일된 sidus(다시 그리는 버전)입니다.
다시 칠하지 않는 버전은 sidus 버전 3 이상을 사용할 수 있습니다.