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

 
Vinin :

나는 내 방식대로 할 것이고 카운트 다운은 다를 것입니다. 항상 과거에서 현재까지 하고 있습니다. 이것은 취향의 문제이지만. 사실, 올바른 접근 방식을 사용하면 문제가 되지 않습니다.

여보세요,

화살표를 도와주세요. (포스트 56, 58페이지)

 
Roger :


아마도 너무 빨리 던졌을 것입니다. 하지만 저는 조금 배워야 했습니다. :-)

그러면 우리는 매도호가에서 매수하고 매도호가에 매도한다는 것을 알게 될 것입니다. 그리고 매도시 테이크는 매수가격보다 낮아야 합니다.


아니요, 모든 것이 당신이 쓴 것과 완전히 반대입니다. 물론 당신의 관심을 가져 주셔서 감사합니다. 나는 열심히 생각하고, 이것 저것을 알아 냈고, 지금 당신은 착각하고 있습니다.

일반적으로, 나는 그 문제가 매도와 입찰에 있지 않으며 아직 해결하지 못했다는 것을 알았습니다.

 
Dimka-novitsek :

죄송합니다, 저도 함께 해요. 여기에서 코드를 재빨리 흐릿하게 말했지만 작동하지 않습니다.

//+----------------------------------------------- --------------------+
//| 주문 유형.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"

//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
더블 New_Time=0,라즈니자, r;int i=0,h=0,q=0,w=0,s=0,g=0;
정수 시작()
{intM,Y;
//----
이중 티켓,Lots=0.2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo(Symbol(), MODE_POINT);
//----
만약 (i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"포즈 열기",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); 나는 ++; }
Alert("OrderTypeOP_BUYSTOP", OrderType());OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( 티켓, 랏, 입찰, 5, 0 );



만약 (h<10)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"포즈 열기",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); h++; }
Alert("OrderTypeOP_SELLSTOP", OrderType());OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( 티켓, 랏, 묻기, 5, 0 );

만약 (q<10)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,3,0,fractal_u+5*Points+TakeProfit*Points,
"포즈 열기",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); q++; }
Alert("OrderTypeOP_BUY", OrderType());OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( 티켓, 랏, 입찰, 5, 0 );

만약 (w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,fractal_u+5*Points+TakeProfit*Points,
"포즈 열기",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); ㅁ++; }
Alert("OrderTypeOP_SELL", OrderType());OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( 티켓, 랏, 묻기, 5, 0 );

만약 (s<10)
{
ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"포즈 열기",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); s++; }
Alert("OrderTypeOP_BUYLIMIT", OrderType());OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( 티켓, 랏, 묻기, 5, 0 );

만약 (g<10)
{
ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"포즈 열기",163899,0,Red);if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); 지++; }
Alert("OrderTypeOP_SELLLIMIT", OrderType());OrderSelect(티켓,SELECT_BY_TICKET,MODE_TRADES);
OrderClose( 티켓, 랏, 입찰, 5, 0 );






//----
리턴(0);
}
//+----------------------------------------------- --------------------+

나는 Order 유형 함수의 숫자 값을 얻기 위해 꽤 빨리 그것을 던졌습니다. 그것은 모든 주문을 연속적으로 열고 닫습니다. 즉, 모든 유형의 계획대로, 나는 또한 OrderSelect를 사용하려고 시도했습니다. 짧은 그것은 작동하지 않습니다, 그것은 일련의 0과 오류 4063을 제공합니다. I OrderClose 지침으로 확인, 처방의 매개 변수가 합리적이고 정확하며 제자리에 있는 것 같습니다. 도대체 그가 여전히 필요로 하는 것은 ???? ?

 

Alert(" 현재 시간 은 요일입니다.", iTime(NULL,PERIOD_D1,5));

이것은 나에게 0을 제공합니다.

경고("",GetLastError());

오류 4054를 씁니다.

ERR_INCORRECT_SERIESARRAY_USING 4054 시계열 배열의 잘못된 사용

내가 무엇을 잘못하고 있지?


 

도와주세요. 코드는 모든 쌍에 대한 모든 시장 주문을 삭제해야 하지만 실제로는 Expert Advisor가 발생한 창의 주문만 삭제합니다. 오류를 찾을 수 있도록 도와주세요.


무효 CloseAll_b(int Prosk){
문자열 SMB=심볼();
(int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Alert("오류 ", GetLastError(), " 주문 번호 선택 시 ",OrderTicket()," 쌍 ",Symbol());
}
또 다른{
if(OrderSymbol()!=Symbol()){계속;}
새로 고침();
if(주문유형()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk, CLR_NONE )){
Alert("오류 ", GetLastError(), " 매수 주문 번호를 닫을 때 ",OrderTicket()," 쌍에 대한 ",Symbol());
}
}
if(주문유형()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){
Alert("오류 ", GetLastError(), " 매도 주문 번호를 닫을 때 ",OrderTicket()," 쌍에 대한 ",Symbol());
} } } } }

미리 감사드립니다.

 
nemo811 :

도와주세요. 코드는 모든 쌍에 대한 모든 시장 주문을 삭제해야 하지만 실제로는 Expert Advisor가 발생한 창의 주문만 삭제합니다. 오류를 찾을 수 있도록 도와주세요.


그러나 당신은 스스로 한계를 설정합니다 :))

if(OrderSymbol()!=Symbol()){계속;}

 
sergeev :

그러나 당신은 스스로 한계를 설정합니다 :))

if(OrderSymbol()!=Symbol()){계속;}


동의합니다-바보 :)) 그리고 어떻게 되어야 합니까?
 
nemo811 :

동의합니다-바보 :)) 그리고 어떻게 되어야 합니까?
... 제거하기만 하면 됩니다. 통화를 필터링하고 싶지 않습니다. 따라서 이 조건을 제거해야 합니다.
 
제거되었지만 다른 쌍에 대한 주문은 아직 마감되지 않았습니다. 오류 129 (잘못된 가격)가 팝업되기 시작했습니다
 
nemo811 :
제거되었지만 다른 쌍에 대한 주문은 아직 마감되지 않았습니다. 오류 129(잘못된 가격)가 팝업되기 시작했습니다

제대로 뜹니다.

MarketInfo 기능에서 Bid 및 Ask를 가져와야 합니다.

유형 - 질문= MarketInfo(OrderSymbol(), MODE_ASK);

정상화하는 것을 잊지 마십시오.
Ask=NormalizeDouble(질문, MarketInfo(OrderSymbol(), MODE_DIGITS));