[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 287

 
Sorento :
2011.03.30 08:40:21 가방 USDCAD,M1: 3 4 4.00000000 물가=0.9729 입찰가=0.9725


 int Ret[ 3 ];

Ret[ 0 ]= NormalizeDouble ((Ask-Bid)/ Point , 0 ); 
Print (Ret[ 0 ], " " ,(Ask-Bid)/ Point , " ask=" ,Ask, " bid=" ,Bid); 
이것이 작동하는 방식입니다
 
abolk :

이것이 작동하는 방식입니다
고맙습니다!
 
Sorento :
고맙습니다!


일반적으로 MT 개발자는 문서에 섹션을 만들고 문제와 정규화 사용의 필요성을 자세히 설명해야 합니다.

이 상황에서 문서에는 악센트가 없는 겸손한 예만 포함되어 있습니다.

 int     i = 1 / 2.0 ;   // выражение приводится к типу double, затем приводится к целевому типу int, результат: 0

섹션 "유형 캐스팅" https://docs.mql4.com/en/basis/types/casting

 
Roger :

FoxUA에

주문 3(매도)이 마감되면 해당 주문 1(매수)은 여전히 손절매로 마감되었음을 세마포링하므로 총계 = 1이기 때문에 연속으로 2개의 주문이 이루어집니다.


글쎄, 이 문제에 대한 해결책을 말해봐, 토비쉬보다 총 1을 대체하여 그러한 효과를 없애기 위해
 
스크립트가 첨부된 차트의 창에서 뿐만 아니라 다른 통화 쌍에 대해서도 주문을 열 수 있는지 알려주실 수 있습니까? 그에 따라 다른 통화 쌍을 열어야 하는 경우 ??
 
CreAndr :
스크립트가 첨부된 차트의 창에서 뿐만 아니라 다른 통화 쌍에 대해서도 주문을 열 수 있는지 알려주실 수 있습니까? 그에 따라 다른 통화 쌍을 열어야 하는 경우 ??

아마도
 
abolk :

아마도
#property show_inputs
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;


//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()

{
//::::Открытие и выставление ордеров


OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble(Bid,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);

return (0);

}


여기에 옵션이 있습니다. 작동합니까?
파일:
 
CreAndr :

OrderSend("EURUSD",OP_BUY,Lots, NormalizeDouble(Ask,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits)," CleverEA",MagNum,0,Green);


여기에 옵션이 있습니다. 작동합니까?


아니요, 현재 기기에서 선택한 항목이 반환됩니다. 상품을 명시적으로 지정하여 MarketInfo를 사용하여 입찰, 매도, 숫자 등을 요청해야 합니다.
 
CreAndr :
#property show_inputs
//--------------------------------------------------------------------
extern double TakeProfit = 1000;
extern double Lots = 0.01;
extern double StopLoss = 500.0;
extern int MagNum = 1974;
int slip = 100;


//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()

{
//::::Открытие и выставление ордеров


OrderSend("EURUSD",OP_BUY,Lots,NormalizeDouble( Ask ,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("GBPUSD",OP_BUY,Lots,NormalizeDouble( Ask ,Digits),slip,NormalizeDouble(Bid - StopLoss*Point,Digits),NormalizeDouble(Ask + TakeProfit * Point,Digits),"CleverEA",MagNum,0,Green);
OrderSend("USDJPY",OP_SELL,Lots,NormalizeDouble( Bid ,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);
OrderSend("USDCHF",OP_SELL,Lots,NormalizeDouble( Bid ,Digits),slip,NormalizeDouble(Ask + StopLoss*Point,Digits),NormalizeDouble(Bid - TakeProfit * Point,Digits),"CleverEA",MagNum,0,Red);

return (0);

}

여기에 옵션이 있습니다. 작동합니까?


하지 않을 것이다. MarketInfo 기능 https://docs.mql4.com/ru/common/MarketInfo 를 사용해야 합니다.

귀하의 작업에 대한 페이지에 예가 있습니다

 
도와 주셔서 감사합니다.