//+---------로트 계산 기능--------------------------------------- --------------- -+ 더블 GetLot(int Risk) { 이중 Free=AccountFreeMargin(); 더블 One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED); 이중 Min_Lot=시장 정보(Symbol(),MODE_MINLOT); 이중 Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT); 더블 스텝=MarketInfo(Symbol(),MODE_LOTSTEP); double Lot=MathFloor(무료*리스크/100/One_Lot/Step)*Step; if(Lot<Min_Lot)Lot=Min_Lot; if(Lot>Max_Lot)Lot=Max_Lot; if(Lot*One_Lot>Free)return(0.0); 반품(로트); }
//+----------주문을 여는 함수-------------------------------- ------------------ --+ int NewOrder(int Cmd, 이중 로트) { 이중 TP=0; // 이익을 얻습니다. 이중 SL=0;// 손실 중지 이중 PR=0;// 가격 동안(!IsTradeAllowed())Sleep(100); if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL)) TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL); if(스톱로스<MarketInfo(Symbol(),MODE_STOPLEVEL)) StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL); if(명령==OP_BUYSTOP) { PR=NormalizeDouble(질문, 숫자); if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits); if(StopLoss>0) SL=NormalizeDouble(Bid-StopLoss*Point,Digits); } if(명령==OP_SELLSTOP) { PR=NormalizeDouble(입찰가, 자릿수); if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits); if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits); } tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE); if(tic<0)Print("주문 열기 오류:",GetLastError()); Print("명령어-",명령어,"Lot=",Lot,"PR=",PR,"SL=",SL,"TP=",TP); 리턴(틱); }
확인할 때 무엇을 제공합니까?
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 기능 에 대한 잘못된 로트 금액
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 오류 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: 주문 개시 오류:405
베이직 플랫... :-)
베이직 트렌드와 마찬가지로))
유로가 떨어지고 돌이 떨어지면 플랫
:-)
스왑 스프레드가 고려되었습니까?
양식 후에 ...
예 .... "철저한" 답변입니다. 모든 사건에는 이유가 있어야 합니다. 어떤 종류의 오작동을 만나는 전문가는 무엇을 찾아야하는지 알고 있습니다. 알고리즘을 여러 번 살펴보았지만 이유를 찾지 못해 전문가에게 조언을 구합니다. 이유는 무엇입니까?
다음과 같이 보류 중인 주문을 열려고 합니다.
//+---------로트 계산 기능--------------------------------------- --------------- -+
더블 GetLot(int Risk)
{
이중 Free=AccountFreeMargin();
더블 One_Lot=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
이중 Min_Lot=시장 정보(Symbol(),MODE_MINLOT);
이중 Max_Lot=MarketInfo(Symbol(),MODE_MAXLOT);
더블 스텝=MarketInfo(Symbol(),MODE_LOTSTEP);
double Lot=MathFloor(무료*리스크/100/One_Lot/Step)*Step;
if(Lot<Min_Lot)Lot=Min_Lot;
if(Lot>Max_Lot)Lot=Max_Lot;
if(Lot*One_Lot>Free)return(0.0);
반품(로트);
}
//+----------주문을 여는 함수-------------------------------- ------------------ --+
int NewOrder(int Cmd, 이중 로트)
{
이중 TP=0; // 이익을 얻습니다.
이중 SL=0;// 손실 중지
이중 PR=0;// 가격
동안(!IsTradeAllowed())Sleep(100);
if(TakeProfit<MarketInfo(Symbol(),MODE_STOPLEVEL))
TakeProfit=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(스톱로스<MarketInfo(Symbol(),MODE_STOPLEVEL))
StopLoss=MarketInfo(Symbol(),MODE_STOPLEVEL);
if(명령==OP_BUYSTOP)
{
PR=NormalizeDouble(질문, 숫자);
if(TakeProfit>0)TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Bid-StopLoss*Point,Digits);
}
if(명령==OP_SELLSTOP)
{
PR=NormalizeDouble(입찰가, 자릿수);
if(TakeProfit>0)TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits);
}
tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"",0,0,CLR_NONE);
if(tic<0)Print("주문 열기 오류:",GetLastError()); Print("명령어-",명령어,"Lot=",Lot,"PR=",PR,"SL=",SL,"TP=",TP);
리턴(틱);
}
확인할 때 무엇을 제공합니까?
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 기능 에 대한 잘못된 로트 금액
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 오류 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: 주문 개시 오류:405
2011.12.06 23:36:51 2010.01.07 17:20 빅독 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
분명히 로트 계산과 관련이 있지만 이해하지 못하는 것입니다))) 알려주세요
예 .... "철저한" 답변입니다. 모든 사건에는 이유가 있어야 합니다. 어떤 종류의 오작동을 만나는 전문가는 무엇을 찾아야하는지 알고 있습니다. 알고리즘을 여러 번 살펴보았지만 이유를 찾지 못해 전문가에게 조언을 구합니다. 이유는 무엇입니까?
자, 지표는 어디에 있습니까? (커피 찌꺼기 tel. https://www.mql5.comhttps://www.mql5.com/ru/ 추측 )
글쎄, 당신이 모든 것을 나열하면 편지가 끝날 것입니다.
계속 중단 반환 참조 중단이 있고 언제 발생합니까? 바의 오프닝과 함께 작동 ....
"일부 문제를 만났을 때, 그들은주의를 기울여야 할 사항을 알고 있습니다."주의를 기울이지 않고 디버깅을 시작하고 표시기 디버깅을 시작하고 인쇄를 통해 추가로 (특히 낯선 사람과 15와 같은 페이지, 50개 이상의 호출된 기능. ..)
안녕하세요.
배열을 만들었습니다.
그러나 어떤 이유로 첫 번째 값은 0으로 재설정됩니다(-10.09가 0이 됨). 다음을 수행하여 해결 방법을 찾았습니다.
말해 주세요. 여기 문제가 무엇입니까? 나는 정말로 그것을 알아내고 싶다.
미리 감사드립니다.
안녕하세요.
배열을 만들었습니다.
그러나 어떤 이유로 첫 번째 값은 0으로 재설정됩니다(-10.09가 0이 됨). 다음을 수행하여 해결 방법을 찾았습니다.
말해 주세요. 여기 문제가 무엇입니까? 나는 정말로 그것을 알아내고 싶다.
미리 감사드립니다.
인덱스 = 0으로 재설정하지 않습니다.
2011.12.06 20:00:47 MA_TF AUDUSD,M30: 경보: -10.09
다음은 코드의 문제가 되는 부분입니다.
위에서 설명한 문제가 여기에 있습니다. -10.09 값에서 파생된 선이 그려지지 않습니다( MinAsia 값 사용).
다음은 코드의 문제가 되는 부분입니다.
튀다
다음과 같이 보류 중인 주문을 열려고 합니다.
//+---------로트 계산 기능--------------------------------------- --------------- -+
확인할 때 무엇을 얻을 수 있습니까?
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 기능에 대한 잘못된 로트 금액
2011.12.06 23:36:50 2010.01.06 16:19 Big Dog 1.01 EURUSD,M15: OrderSend 오류 4051
2011.12.06 23:36:51 2010.01.07 17:20 Big Dog 1.01 EURUSD,M15: 주문 개시 오류:405
2011.12.06 23:36:51 2010.01.07 17:20 빅독 1.01 EURUSD,M15: Cmd-5Lot=0PR=1.4316SL=1.4419TP=1.4216
분명히 로트 계산과 관련이 있지만 이해하지 못하는 것입니다))) 알려주세요