[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 83 1...767778798081828384858687888990...537 새 코멘트 [Deleted] 2011.02.09 00:38 #821 도와주세요. 82페이지의 EA 변형은 작동 중이지만(1 가지 유형의 거래 를 열기 위해 작성됨) 아래의 변형(모든 유형의 주문에 대해)은 오류가 있는 것으로 나타났습니다. 모든 틱에서 주문을 엽니다. 내 실수가 뭐야? extern int Magic = 0 ; //уникальный номер ордера extern bool BUY = false; //открыть ордер BUY extern bool BUY_STOP = false; //поставить ордер BUY STOP extern bool BUY_LIMIT = false; //поставить ордер BUY LIMIT extern bool SELL = false; //открыть ордер SELL extern bool SELL_STOP = false; //поставить ордер SELL STOP extern bool SELL_LIMIT = false; //поставить ордер SELL LIMIT extern double Lot = 0.1 ; //объем ордера extern int takeprofit = 0 ; //уровень выставления TP, если 0, то TP не выставляется extern int stoploss = 0 ; //уровень выставления SL, если 0, то SL не выставляется extern int DistanceSet = 40 ; //расстояние от рынка для отложенника extern int slippage = 3 ; //максимально допустимое отклонение цены для рыночных ордеров //-------------------------------------------------------------------- double SL,TP; //-------------------------------------------------------------------- int start() { if (BUY) { if (takeprofit!= 0 ) TP = NormalizeDouble (Ask + takeprofit* Point , Digits ); else TP= 0 ; if (stoploss!= 0 ) SL = NormalizeDouble (Ask - stoploss* Point , Digits ); else SL= 0 ; OPENORDER ( "Buy" ); } if (SELL) { if (takeprofit!= 0 ) TP = NormalizeDouble (Bid - takeprofit* Point , Digits ); else TP= 0 ; if (stoploss!= 0 ) SL = NormalizeDouble (Bid + stoploss* Point , Digits ); else SL= 0 ; OPENORDER ( "Sell" ); } if (BUY_STOP) { if (takeprofit!= 0 ) TP = NormalizeDouble (Ask + DistanceSet* Point + takeprofit* Point , Digits ); else TP= 0 ; if (stoploss!= 0 ) SL = NormalizeDouble (Ask + DistanceSet* Point - stoploss* Point , Digits ); else SL= 0 ; OPENORDER ( "Buy Stop" ); } if (SELL_STOP) { if (takeprofit!= 0 ) TP = NormalizeDouble (Bid - DistanceSet* Point - takeprofit* Point , Digits ); else TP= 0 ; if (stoploss!= 0 ) SL = NormalizeDouble (Bid - DistanceSet* Point + stoploss* Point , Digits ); else SL= 0 ; OPENORDER ( "Sell Stop" ); } if (BUY_LIMIT) { if (takeprofit!= 0 ) TP = NormalizeDouble (Ask - DistanceSet* Point + takeprofit* Point , Digits ); else TP= 0 ; if (stoploss!= 0 ) SL = NormalizeDouble (Ask - DistanceSet* Point - stoploss* Point , Digits ); else SL= 0 ; OPENORDER ( "Buy Limit" ); } if (SELL_LIMIT) { if (takeprofit!= 0 ) TP = NormalizeDouble (Bid + DistanceSet* Point - takeprofit* Point , Digits ); else TP= 0 ; if (stoploss!= 0 ) SL = NormalizeDouble (Bid + DistanceSet* Point + stoploss* Point , Digits ); else SL= 0 ; OPENORDER ( "Sell Limit" ); } return ( 0 ); } void OPENORDER( string ord) { int ticket = - 1 ; int err; while (ticket< 0 ) { if (ord== "Buy" ) ticket= OrderSend ( Symbol (),OP_BUY, Lot, NormalizeDouble (Ask, Digits ),slippage,SL,TP, "" ,Magic, 0 ); if (ord== "Sell" ) ticket= OrderSend ( Symbol (),OP_SELL,Lot, NormalizeDouble (Bid, Digits ),slippage,SL,TP, "" ,Magic, 0 ); if (ord== "Buy Stop" ) ticket= OrderSend ( Symbol (),OP_BUYSTOP, Lot, NormalizeDouble (Ask + DistanceSet* Point , Digits ),slippage,SL,TP, "" ,Magic, 0 ); if (ord== "Sell Stop" ) ticket= OrderSend ( Symbol (),OP_SELLSTOP,Lot, NormalizeDouble (Bid - DistanceSet* Point , Digits ),slippage,SL,TP, "" ,Magic, 0 ); if (ord== "Buy Limit" ) ticket= OrderSend ( Symbol (),OP_BUYLIMIT, Lot, NormalizeDouble (Ask - DistanceSet* Point , Digits ),slippage,SL,TP, "" ,Magic, 0 ); if (ord== "Sell Limit" ) ticket= OrderSend ( Symbol (),OP_SELLLIMIT,Lot, NormalizeDouble (Bid + DistanceSet* Point , Digits ),slippage,SL,TP, "" ,Magic, 0 ); if (ticket==- 1 ) //неудачная попытка { ShowERROR(); err++; Sleep ( 2000 );RefreshRates(); } } return ; } void ShowERROR() { int err= GetLastError (); switch ( err ) { case 1 : return ; case 2 : Alert ( "Нет связи с торговым сервером " , Symbol ()); return ; case 3 : Alert ( "Error неправильные параметры " , Symbol ()); return ; case 130 : Alert ( "Error близкие стопы Ticket " , Symbol ()); return ; case 134 : Alert ( "Недостаточно денег " , Symbol ()); return ; case 146 : Alert ( "Error Подсистема торговли занята " , Symbol ()); return ; case 129 : Alert ( "Error Неправильная цена " , Symbol ()); return ; case 131 : Alert ( "Error Неправильный объем " , Symbol ()); return ; case 4200 : Alert ( "Error Объект уже существует " , Symbol ()); return ; } } 미리 감사드립니다. --- 2011.02.09 00:52 #822 nemo811 : 도와주세요. 82페이지의 EA 변형은 작동 중이지만(1가지 유형의 거래를 시작하기 위해 작성됨) 아래에 있는 변형(모든 유형의 주문에 대해)은 오류가 있는 것으로 나타났습니다. 모든 틱에서 주문을 엽니다. 내 실수가 뭐야? 미리 감사드립니다. 코드에서 주문 수의 제어는 어디에 있습니까? Nameless 2011.02.09 01:01 #823 nemo811 : 간단히 말해서 고문의 아이디어는 무엇입니까? 언뜻보기에이 코드는 거래를 전혀 열지 않습니다. 플래그의 값을 변경하고 거래가 한 번 열렸지만이 EA가하는 일을 이해하지 못합니다))) Nameless 2011.02.09 01:11 #824 nemo811 : extern int Magic = 0; //уникальный номер ордера extern bool BUY = true; //открыть ордер BUY extern bool BUY_STOP = true; //поставить ордер BUY STOP extern bool BUY_LIMIT = true; //поставить ордер BUY LIMIT extern bool SELL = true; //открыть ордер SELL extern bool SELL_STOP = true; //поставить ордер SELL STOP extern bool SELL_LIMIT = true; //поставить ордер SELL LIMIT extern double Lot = 0.1; //объем ордера extern int takeprofit = 0; //уровень выставления TP, если 0, то TP не выставляется extern int stoploss = 0; //уровень выставления SL, если 0, то SL не выставляется extern int DistanceSet = 40; //расстояние от рынка для отложенника extern int slippage = 3; //максимально допустимое отклонение цены для рыночных ордеров //-------------------------------------------------------------------- double SL,TP; //-------------------------------------------------------------------- int start() { if (BUY) { if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy"); BUY=false; } if (SELL) { if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell"); SELL=false; } if (BUY_STOP) { if (takeprofit!=0) TP = NormalizeDouble(Ask + DistanceSet*Point + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask + DistanceSet*Point - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Stop"); BUY_STOP=false; } if (SELL_STOP) { if (takeprofit!=0) TP = NormalizeDouble(Bid - DistanceSet*Point - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid - DistanceSet*Point + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Stop"); SELL_STOP=false; } if (BUY_LIMIT) { if (takeprofit!=0) TP = NormalizeDouble(Ask - DistanceSet*Point + takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Ask - DistanceSet*Point - stoploss*Point,Digits); else SL=0; OPENORDER ("Buy Limit"); BUY_LIMIT=false; } if (SELL_LIMIT) { if (takeprofit!=0) TP = NormalizeDouble(Bid + DistanceSet*Point - takeprofit*Point,Digits); else TP=0; if (stoploss!=0) SL = NormalizeDouble(Bid + DistanceSet*Point + stoploss*Point,Digits); else SL=0; OPENORDER ("Sell Limit"); SELL_LIMIT=false; } return(0); } void OPENORDER(string ord) { int ticket = -1; int err; while (ticket<0) { if (ord=="Buy") ticket=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell") ticket=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Buy Stop" ) ticket=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell Stop") ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Buy Limit" ) ticket=OrderSend(Symbol(),OP_BUYLIMIT, Lot,NormalizeDouble(Ask - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ord=="Sell Limit") ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lot,NormalizeDouble(Bid + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0); if (ticket==-1) //неудачная попытка { ShowERROR(); err++;Sleep(2000);RefreshRates(); } } return; } void ShowERROR() { int err=GetLastError(); switch ( err ) { case 1: return; case 2: Alert("Нет связи с торговым сервером ",Symbol());return; case 3: Alert("Error неправильные параметры ",Symbol());return; case 130: Alert("Error близкие стопы Ticket ",Symbol());return; case 134: Alert("Недостаточно денег ",Symbol());return; case 146: Alert("Error Подсистема торговли занята ",Symbol());return; case 129: Alert("Error Неправильная цена ",Symbol());return; case 131: Alert("Error Неправильный объем ",Symbol());return; case 4200:Alert("Error Объект уже существует ",Symbol());return; } } 일반적으로 이 형식에서 그는 주문을 한 번 열고 한 번에 하나의 보증금을 내립니다. [Archive!] Any rookie question, 100% Risk Free Margin Invalid stops error. [Deleted] 2011.02.09 01:11 #825 NameLess : 간단히 말해서 고문의 아이디어는 무엇입니까? 언뜻보기에이 코드는 거래를 전혀 열지 않습니다. 플래그의 값을 변경하고 거래가 한 번 열렸지만이 EA가하는 일을 이해하지 못합니다))) )))) 이것은 다른 Expert Advisor의 일부입니다. 나는 벽돌로 벽돌을 수집합니다)) [Deleted] 2011.02.09 01:20 #826 다른 하나의 의미는 각 쌍에 대해 전체 이익 또는 이익을 별도로 취하는 것입니다(다각화를 사용할 때 편리함). + 가능한 것과 기타 기능을 추적합니다. Expert Advisor drknn universal_1_7이 기본으로 사용됩니다. Nameless 2011.02.09 01:24 #827 nemo811 : 다른 하나의 의미는 각 쌍에 대해 전체 이익 또는 이익을 별도로 취하는 것입니다(다각화를 사용할 때 편리함). + 가능한 것과 기타 기능을 추적합니다. Expert Advisor drknn universal_1_7이 기본으로 사용됩니다. 이 코드는 단순히 스프레드와 오프닝 간의 차이를 합산하지만 현재 옵션은 마이너스를 누적합니다. 여기서 이익이 어디로 갈지는 모르겠지만) [Deleted] 2011.02.09 01:34 #828 NameLess : 이 코드는 단순히 스프레드와 오프닝 간의 차이를 합산하지만 현재 옵션은 마이너스를 누적합니다. 여기서 이익이 어디로 갈지는 모르겠지만) 여기 내가 현재 작업하고 있는 약간 오래된 버전이 있습니다. 작성자 drknn 이 퍼뜨리는 것을 허용했습니다. 파일: rdzexvmen_1.71.rar 17 kb [Deleted] 2011.02.09 01:38 #829 NameLess : 일반적으로 이 형식에서 그는 주문을 한 번 열고 한 번에 하나의 보증금을 내립니다. 고마워, 효과가 있었다! )) 주문 수의 통제를 결정하는 것이 남아 있습니다. Nameless 2011.02.09 01:41 #830 nemo811 : 감사합니다. 효과가 있었습니다! )) 주문 수의 통제를 결정하는 것이 남아 있습니다. 코드를 살펴보고 두뇌를 망가뜨렸습니다))) 작업을 이해하기 위해 다른 사람의 코드를 찔러보는 감사할 일입니다. 이 고문을 믿으면 모든 것이 잘되도록 성공을 기원합니다) 개인적으로 나는 자전거를 발명하고 처음부터 내 자신의 코드를 작성했지만 그것이 어디에서 어떻게 작동하는지 알고 작동하지 않는 이유와 오류를 찾아야 할 위치를 압니다) 어쨌든 그런 것) 1...767778798081828384858687888990...537 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
도와주세요. 82페이지의 EA 변형은 작동 중이지만(1 가지 유형의 거래 를 열기 위해 작성됨) 아래의 변형(모든 유형의 주문에 대해)은 오류가 있는 것으로 나타났습니다. 모든 틱에서 주문을 엽니다.
내 실수가 뭐야?
미리 감사드립니다.
도와주세요. 82페이지의 EA 변형은 작동 중이지만(1가지 유형의 거래를 시작하기 위해 작성됨) 아래에 있는 변형(모든 유형의 주문에 대해)은 오류가 있는 것으로 나타났습니다. 모든 틱에서 주문을 엽니다.
내 실수가 뭐야?
미리 감사드립니다.
코드에서 주문 수의 제어는 어디에 있습니까?
간단히 말해서 고문의 아이디어는 무엇입니까? 언뜻보기에이 코드는 거래를 전혀 열지 않습니다.
플래그의 값을 변경하고 거래가 한 번 열렸지만이 EA가하는 일을 이해하지 못합니다)))
extern int Magic = 0; //уникальный номер ордера
extern bool BUY = true; //открыть ордер BUY
extern bool BUY_STOP = true; //поставить ордер BUY STOP
extern bool BUY_LIMIT = true; //поставить ордер BUY LIMIT
extern bool SELL = true; //открыть ордер SELL
extern bool SELL_STOP = true; //поставить ордер SELL STOP
extern bool SELL_LIMIT = true; //поставить ордер SELL LIMIT
extern double Lot = 0.1; //объем ордера
extern int takeprofit = 0; //уровень выставления TP, если 0, то TP не выставляется
extern int stoploss = 0; //уровень выставления SL, если 0, то SL не выставляется
extern int DistanceSet = 40; //расстояние от рынка для отложенника
extern int slippage = 3; //максимально допустимое отклонение цены для рыночных ордеров
//--------------------------------------------------------------------
double SL,TP;
//--------------------------------------------------------------------
int start()
{
if (BUY)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;
OPENORDER ("Buy");
BUY=false;
}
if (SELL)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); else SL=0;
OPENORDER ("Sell");
SELL=false;
}
if (BUY_STOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask + DistanceSet*Point + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask + DistanceSet*Point - stoploss*Point,Digits); else SL=0;
OPENORDER ("Buy Stop");
BUY_STOP=false;
}
if (SELL_STOP)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid - DistanceSet*Point - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid - DistanceSet*Point + stoploss*Point,Digits); else SL=0;
OPENORDER ("Sell Stop");
SELL_STOP=false;
}
if (BUY_LIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(Ask - DistanceSet*Point + takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Ask - DistanceSet*Point - stoploss*Point,Digits); else SL=0;
OPENORDER ("Buy Limit");
BUY_LIMIT=false;
}
if (SELL_LIMIT)
{
if (takeprofit!=0) TP = NormalizeDouble(Bid + DistanceSet*Point - takeprofit*Point,Digits); else TP=0;
if (stoploss!=0) SL = NormalizeDouble(Bid + DistanceSet*Point + stoploss*Point,Digits); else SL=0;
OPENORDER ("Sell Limit");
SELL_LIMIT=false;
}
return(0);
}
void OPENORDER(string ord)
{
int ticket = -1;
int err;
while (ticket<0)
{
if (ord=="Buy") ticket=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Sell") ticket=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Buy Stop" ) ticket=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Sell Stop") ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Buy Limit" ) ticket=OrderSend(Symbol(),OP_BUYLIMIT, Lot,NormalizeDouble(Ask - DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (ord=="Sell Limit") ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lot,NormalizeDouble(Bid + DistanceSet*Point,Digits),slippage,SL,TP,"",Magic,0);
if (ticket==-1) //неудачная попытка
{
ShowERROR();
err++;Sleep(2000);RefreshRates();
}
}
return;
}
void ShowERROR()
{
int err=GetLastError();
switch ( err )
{
case 1: return;
case 2: Alert("Нет связи с торговым сервером ",Symbol());return;
case 3: Alert("Error неправильные параметры ",Symbol());return;
case 130: Alert("Error близкие стопы Ticket ",Symbol());return;
case 134: Alert("Недостаточно денег ",Symbol());return;
case 146: Alert("Error Подсистема торговли занята ",Symbol());return;
case 129: Alert("Error Неправильная цена ",Symbol());return;
case 131: Alert("Error Неправильный объем ",Symbol());return;
case 4200:Alert("Error Объект уже существует ",Symbol());return;
}
}
일반적으로 이 형식에서 그는 주문을 한 번 열고 한 번에 하나의 보증금을 내립니다.
간단히 말해서 고문의 아이디어는 무엇입니까? 언뜻보기에이 코드는 거래를 전혀 열지 않습니다.
플래그의 값을 변경하고 거래가 한 번 열렸지만이 EA가하는 일을 이해하지 못합니다)))
)))) 이것은 다른 Expert Advisor의 일부입니다. 나는 벽돌로 벽돌을 수집합니다))
다른 하나의 의미는 각 쌍에 대해 전체 이익 또는 이익을 별도로 취하는 것입니다(다각화를 사용할 때 편리함). + 가능한 것과 기타 기능을 추적합니다. Expert Advisor drknn universal_1_7이 기본으로 사용됩니다.
이 코드는 단순히 스프레드와 오프닝 간의 차이를 합산하지만 현재 옵션은 마이너스를 누적합니다. 여기서 이익이 어디로 갈지는 모르겠지만)
이 코드는 단순히 스프레드와 오프닝 간의 차이를 합산하지만 현재 옵션은 마이너스를 누적합니다. 여기서 이익이 어디로 갈지는 모르겠지만)
여기 내가 현재 작업하고 있는 약간 오래된 버전이 있습니다. 작성자 drknn 이 퍼뜨리는 것을 허용했습니다.
일반적으로 이 형식에서 그는 주문을 한 번 열고 한 번에 하나의 보증금을 내립니다.
감사합니다. 효과가 있었습니다! )) 주문 수의 통제를 결정하는 것이 남아 있습니다.
코드를 살펴보고 두뇌를 망가뜨렸습니다))) 작업을 이해하기 위해 다른 사람의 코드를 찔러보는 감사할 일입니다. 이 고문을 믿으면 모든 것이 잘되도록 성공을 기원합니다)
개인적으로 나는 자전거를 발명하고 처음부터 내 자신의 코드를 작성했지만 그것이 어디에서 어떻게 작동하는지 알고 작동하지 않는 이유와 오류를 찾아야 할 위치를 압니다)
어쨌든 그런 것)