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

 

그러나 고문의 미결 주문 수를 제한하는 방법은 무엇입니까? 그렇지 않으면 눈덩이처럼 열립니다. 이전에 코드 조각을 게시했습니다.

 
stalkertula :

그러나 고문의 미결 주문 수를 제한하는 방법은 무엇입니까? 그렇지 않으면 눈덩이처럼 열립니다. 이전에 코드 조각을 게시했습니다.

1. 우리는 주문할 필요성을 확인했습니다. 그렇다면 ...

2. 이미 존재하는 주문의 수를 확인했습니다. 그렇다면...

3. 이전 주문(또는 기타 지연 기준) 이후 경과된 시간을 확인하고 그렇다면...

4. 주문했습니다.

일반적으로 말하자면 이런...

비록... 이러한 각 항목에는 주문 설정 매개변수를 조정하는 데 필요한 다양한 검사도 포함되어 있습니다(DC에서 오류 반환 방지).

조언:
주문을 하거나 포지션을 열기로 결정할 때 어떤 기준으로 자신을 평가합니까?
그리고 이제 스스로에게 질문해 보십시오. "나와 마찬가지로 내 조언자가 결정을 내리기 위한 모든 기준을 평가하도록 하지 않는 이유는 무엇입니까?"
고문의 모든 기준을 고려하자마자 논리의 오류가 즉시 크게 줄어 듭니다...

먼저 종이에 작성하는 것을 규칙으로 만드십시오 (부끄러워 할 것은 없지만 반대로 도움이됩니다) 프로그램의 하나 또는 다른 블록 작동의 전체 논리,
그런 다음 코드로 구현합니다.

 
artmedia70 :

1. 우리는 주문할 필요성을 확인했습니다. 그렇다면 ...

2. 이미 존재하는 주문의 수를 확인했습니다. 그렇다면...

3. 이전 주문(또는 기타 지연 기준) 이후 경과된 시간을 확인하고 그렇다면...

4. 주문했습니다.

일반적으로 말하자면 이런...
비록... 이러한 각 항목에는 주문 설정 매개변수를 조정하는 데 필요한 다양한 검사도 포함되어 있습니다(DC에서 오류 반환 방지).

답변 감사합니다. 하지만 알고리즘을 러시아어로 작성했지만 mql에서는 강하지 않습니다. 최소한 공개 판매/판매의 숫자를 고정하는 기능에 대한 팁(설정에 숫자를 씁니다) 주문을 구매한 다음 /buystop 보류 중인 판매 중지를 배치하는 것을 금지하는 신호.

 //----------------------------------------------------------------------- проверка установленных стоп ордеров

double StopOrderUp,StopOrderDn,price,MinBuyOrder= 1000000000 ,MaxSellOrder,OldBuyOrder,OldSellOrder,OldBuyLot,OldSellLot;

int TicketUp,TicketDn;

TimeOllOpenBuy= 0 ;TimeOllOpenSell= 0 ;

double OOL_BUYSTOP,OOL_SELSTOP;

for (i= 0 ; i< OrdersTotal (); i++)

{

if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)==true)

{ price = OrderOpenPrice();

if (Magic==OrderMagicNumber() && OrderSymbol()== Symbol ())

{

if (OrderType()==OP_BUYSTOP ) {StopOrderUp = price; TicketUp=OrderTicket(); OOL_BUYSTOP=OrderLots();}

if (OrderType()==OP_SELLSTOP) {StopOrderDn = price; TicketDn=OrderTicket(); OOL_SELSTOP=OrderLots();}

if (OrderType()==OP_BUY )

{ TimeOllOpenBuy = TimeOllOpenBuy + TimeCurrent ()-OrderOpenTime();

if (MinBuyOrder > price) MinBuyOrder = price;

OldBuyOrder=price;

OldBuyLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine= "ордер Bay " +OrderTicket(); ObjectDelete (NameLine); ObjectDelete (NameLine+ " з" );

ObjectCreate (NameLine, OBJ_TREND , 0 , OrderOpenTime(),price,Time[ 0 ],Bid);

ObjectSet(NameLine, OBJPROP_COLOR , LightSkyBlue );

ObjectCreate (NameLine+ " з" , OBJ_ARROW , 0 ,Time[ 0 ],Bid, 0 , 0 , 0 , 0 );

ObjectSet(NameLine, OBJPROP_STYLE , STYLE_DOT ); // Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+ " з" , OBJPROP_ARROWCODE , 3 );ObjectSet(NameLine+ " з" , OBJPROP_COLOR ,WhiteColor);}

}

if (OrderType()==OP_SELL)

{ TimeOllOpenSell = TimeOllOpenSell + TimeCurrent ()-OrderOpenTime();

if (MaxSellOrder < price) MaxSellOrder = price;

OldSellOrder=price;

OldSellLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine= "ордер Sell " +OrderTicket(); ObjectDelete (NameLine); ObjectDelete (NameLine+ " з" );

ObjectCreate (NameLine, OBJ_TREND , 0 , OrderOpenTime(),price,Time[ 0 ],Ask);

ObjectSet(NameLine, OBJPROP_COLOR , Pink );

ObjectCreate (NameLine+ " з" , OBJ_ARROW , 0 ,Time[ 0 ],Ask, 0 , 0 , 0 , 0 );

ObjectSet(NameLine, OBJPROP_STYLE , STYLE_DOT ); // Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+ " з" , OBJPROP_ARROWCODE , 3 );ObjectSet(NameLine+ " з" , OBJPROP_COLOR ,WhiteColor);}

}

}

}

}

if (MinBuyOrder== 1000000000 && MaxSellOrder== 0 && OOL_BUYSTOP!=OOL_SELSTOP) //если серия закрылась

{

DELETEORDERS();

}
 
Roman. :

나는 새로운 바의 시가를 기반으로 Expert Advisors를 테스트하고 있습니다(이렇게 하려면 새로운 바 형성에 대한 제어가 Expert Advisor 코드에 지정되어야 함)
틱당 스톱을 수정하려고 합니다. Roman, 수정의 누락된 화살표 외에 그러한 수정의 단점은 무엇입니까?
 

표시기를 삽입하면 터미널이 멈추고 동일한 내용을 로그에 기록합니다. ObjectCreate 기능 에 대해 unknown subwindow number -1

모든 ObjectCreates에는 이 표시기의 이름이 있는 창 인덱스가 있습니다( x=WindowFind(short_name); ObjectCreate("fut "+i,OBJ_TREND,x,0,0,0,0); ).

그것은 항상 이전에 작동했습니다 .. 나는 왜 그런지 이해하지 못합니다.

 
eddy :

표시기를 삽입하면 터미널이 멈추고 동일한 내용을 로그에 기록합니다. 15:18:16 RSI EURUSD,M15: 알 수 없는 하위 창 번호 -1 for ObjectCreate 기능

모든 ObjectCreates에는 이 표시기의 이름(WindowFind(indikator_name))이 있는 창 인덱스가 있습니다. 예를 들어 ObjectCreate("fut "+i,OBJ_TREND,x,0,0,0,0);

그것은 항상 이전에 작동했습니다 .. 나는 왜 그런지 이해하지 못합니다.

아마도 이것은 ObjectCreate 가 init()에서 호출되기 때문일 것입니다. 이 경우 표시기 이름이 정확하더라도 창 조회는 -1을 반환할 수 있습니다.
 
그게 그가 하는 일입니다.. 감사합니다
 
젠장 이해할 수 없어 쓴다
 2011.03 . 07 15 : 49 : 40      2011.01 . 19 10 : 50   RSI-тралинг EURUSD,H1: OrderSend error 131

이것은 Alpari 종료에 있습니다 ... 부동 스프레드 가 있습니다 ... 고정 스프레드가 정상적으로 작동하는 곳 ...

나는 오류에 대해 읽고 모든 볼륨과 1 로트 및 0.1 로트 및 0.01 로트를 ..... 동일한 오류를 씁니다 ((((((

 
Vovo4ka :
젠장 이해할 수 없어 쓴다

이것은 Alpari 종료에 있습니다 ... 부동 스프레드가 있습니다 ... 고정 스프레드가 정상적으로 작동하는 곳 ...

나는 오류에 대해 읽고 모든 볼륨과 1 로트 및 0.1 로트 및 0.01 로트를 ..... 동일한 오류를 씁니다 ((((((

오류 코드 로 파기 방향을 알 수 있습니다. 그러나 코드가 없으면 아무도 이 오류가 발생한 위치를 알려주지 않습니다.

 
Vovo4ka :
젠장 이해할 수 없어 쓴다

이것은 Alpari 종료에 있습니다 ... 부동 스프레드가 있습니다 ... 고정 스프레드가 정상적으로 작동하는 곳 ...

나는 오류에 대해 읽고 모든 볼륨과 1 로트 및 0.1 로트 및 0.01 로트를 ..... 동일한 오류를 씁니다 ((((((


코드 작성