누구든지 도와주세요!!! - 페이지 2 123456789...12 새 코멘트 techno 2010.06.12 15:29 #11 sllawa3 : 더 높은 그러나 그것은 더 높은 것이 아니라 내부에 필요합니다. 맨 처음에 int start() { DS= 0 ; // code [삭제] 2010.06.12 15:34 #12 아니요, 그렇게 작동하지 않습니다. 왜냐하면 포즈가 없으면 다음 선택기가 나타날 때까지 변수 값이 변경되지 않기 때문입니다. 이것이 내가하고 싶었던 방법입니다. for ( int i = 0 ; i < OrdersTotal (); i++) { if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ; if (OrderSymbol() != Symbol ()) continue ; if (OrderMagicNumber() != MAGA) continue ; if (OrderType() == OP_BUYSTOP)ZB= 1 ; if (OrderType() == OP_SELLSTOP)ZS= 1 ; if (OrderType() == OP_SELL)DB= 1 ; if (OrderType() == OP_BUYSTOP&&DB== 1 ){OrderDelete(OrderTicket(), CLR_NONE ); return ( 0 );} if (OrderType() == OP_BUY)DS= 1 ; if (OrderType() == OP_SELLSTOP&&DS== 1 ){OrderDelete(OrderTicket(), CLR_NONE ); return ( 0 );} //................................................................... } if (ZB== 0 &&ZS== 0 &&DB== 0 &&DS== 0 ) { Opn_B = true; Opn_S = true; } [삭제] 2010.06.12 15:35 #13 저도 처음에는 안되네요.. 다 해봤는데 techno 2010.06.12 15:40 #14 위의 코드에서 넌센스를 작성했습니다. 다시 말하지만 선택 기능의 플래그가 mode_trades에 있는 경우 주문은 기록이 아닌 현재 선택되므로 마감 시간을 요청하는 것이 의미가 없으며 항상 0이 됩니다. [삭제] 2010.06.12 15:42 #15 두 주문이 모두 열리고 하나의 지연이 트리거되고 두 번째 주문이 삭제되고 트리거된 주문은 테이크 또는 스톱으로 닫히고 모든 것이 거기서 멈춥니다. 왜냐하면 pos no, 주기가 시작되지 않고 값 1이 저장되기 때문입니다. 변수 중 하나... [삭제] 2010.06.12 15:43 #16 Techno : 위의 코드에서 넌센스를 작성했습니다. 다시 말하지만 선택 기능의 플래그가 mode_trades에 있는 경우 주문은 기록이 아닌 현재 선택되므로 마감 시간을 요청하는 것이 의미가 없으며 항상 0이 됩니다. 그것을 고쳤습니다 .. 나는 그것을 스스로 알고 있지만 방금 모든 것을 연속적으로 시도하기 시작했습니다. techno 2010.06.12 15:46 #17 전체 코드가 필요합니다 techno 2010.06.12 15:50 #18 그건 그렇고, 이래야 합니까? if (OrderType() == OP_SELL )D B = 1 ; if (OrderType() == OP_BUY )D S = 1 ; George 2010.06.12 15:54 #19 아니면 그러한 기초가 효과가 있습니까? 나는 항상 100% 쟁기질을 한다. if( 주문선택(0,SELECT_BY_POS, MODE_TRADES )==true) { if(OrderSymbol()==Symbol()) { ...등... } } [삭제] 2010.06.12 15:59 #20 extern string БАЙ = "NASTROI:"; extern int StopLoss = 200; // SL для открываемого ордера extern int TakeProfit = 40; extern double TrailingStop = 3; extern double TrailingStep =0; extern string ЛОТ = "NASTROI LOT:"; extern double Lots = 0.1; // Жестко заданное колич. лотов extern double ДОЛЯ_ДЕП_ОСН_ОРД = 0; // доля от свободных средств extern double MAX_LOT = 40; extern bool NORMALIZ = false; extern string П = "EDGE:"; extern int МАКС_КОЛИЧ_ОРДЕРОВ = 111; extern double БАЛАНС_МАРЖИ=1; extern int TFCLOSE=5; extern string FLAG = "FLAGS:"; extern int BUY =1; //блок бай extern int SELL =1; //блок сел extern int MINIM=1; extern double F=1; extern int ДИСТАНЦИЯ_ВЫСТАВЛЕНИЯ_ОТЛОЖ = 5; extern int MAGA = 7777; //магик № бай extern double Z=10; //,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, void deinit() { Comment(""); } int start() { bool DS=0,DB=0,ZB=0,ZS=0; int R=1,CB=0; double Lts, FB=F,FS=F,MG,ZL=0, Min_Lot, Lts1, TPD1; bool Cls_B = false, Cls_S = false, Opn_B = false, Opn_S = false; //00000000000000000000000000000000000000000000000000000 //+------------РАСЧЁТ СТОИМОСТИ------------------------------------------------------+ // Стоимость ордеров if(БАЛАНС_МАРЖИ>0&&NORMALIZ==false) { RefreshRates(); if(AccountFreeMargin()>AccountMargin())MG=AccountFreeMargin(); //if(AccountFreeMargin()<AccountMargin())MG=0; if(БАЛАНС_МАРЖИ*AccountFreeMargin()<AccountMargin())R=0; Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); if(Lots > 0 && ДОЛЯ_ДЕП_ОСН_ОРД == 0) Lts = Lots; if(ДОЛЯ_ДЕП_ОСН_ОРД > 0) Lts=MG/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*ДОЛЯ_ДЕП_ОСН_ОРД; if(Lts > MAX_LOT) Lts = MAX_LOT; if(MG==0)Lts =0; if(MG>0&&Lts < Min_Lot&&MINIM==0) { R=0; Lts = 0;// Min_Lot; } if(MG>0&&Lts < Min_Lot&&MINIM==1) { Lts = Min_Lot; } Lts1=Lts; } //................................ int m; if(NORMALIZ==true&&БАЛАНС_МАРЖИ>0) { if(AccountFreeMargin()>AccountMargin())MG=AccountFreeMargin(); if(AccountFreeMargin()<AccountMargin())MG=0; Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); //........................................................ if(Lots > 0 && ДОЛЯ_ДЕП_ОСН_ОРД == 0) Lts = Lots; if(ДОЛЯ_ДЕП_ОСН_ОРД>0) m=БАЛАНС_МАРЖИ*MG/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*ДОЛЯ_ДЕП_ОСН_ОРД/Min_Lot; Lts = m*Min_Lot; if(Lts > MAX_LOT) Lts = MAX_LOT; if(MG==0)Lts =0; if(MG>0&&Lts < Min_Lot) { Lts =Min_Lot; // R=O; } Lts= Lts; } //................................ if(БАЛАНС_МАРЖИ==0) { RefreshRates(); Min_Lot = MarketInfo(Symbol(), MODE_MINLOT); if(Lots > 0 && ДОЛЯ_ДЕП_ОСН_ОРД == 0) Lts = Lots; if(ДОЛЯ_ДЕП_ОСН_ОРД > 0) Lts=AccountFreeMargin()/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*ДОЛЯ_ДЕП_ОСН_ОРД; if(Lts > MAX_LOT) Lts = MAX_LOT; if(Lts < Min_Lot&&MINIM==0) { R=0; Lts = 0;//Min_Lot; } if(Lts < Min_Lot&&MINIM==1) { Lts = Min_Lot; } Lts1=Lts; } for(int i = 0; i < OrdersTotal(); i++) { if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() != Symbol()) continue; if(OrderMagicNumber() != MAGA) continue; if(OrderType() == OP_BUYSTOP)ZB=1; if(OrderType() == OP_SELLSTOP)ZS=1; if(OrderType() == OP_SELL)DB=1; if(OrderType() == OP_BUYSTOP&&DB==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);} if(OrderType() == OP_BUY)DS=1; if(OrderType() == OP_SELLSTOP&&DS==1){OrderDelete(OrderTicket(),CLR_NONE);return(0);} //................................................................... //.................ТЕЙК И СТОП....................... if(OrderType() == OP_BUY&&OrderStopLoss()==0||OrderTakeProfit()==0&&StopLoss>0) { OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point , OrderOpenPrice()+TakeProfit*Point ,MAGA, CLR_NONE); return(0); } if(OrderType() == OP_SELL&&OrderStopLoss()==0||OrderTakeProfit()==0&&StopLoss>0) { OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point , OrderOpenPrice()-TakeProfit*Point ,MAGA, CLR_NONE); return(0); } //.................................................................... if(OrdersTotal() > 0&&TrailingStop>1)//&&OrderMagicNumber()== MAGICD1||OrderMagicNumber()== MAGIC1||OrderMagicNumber()== MAGICD||OrderMagicNumber()== MAGIC) { if(OrderType() == OP_SELL&&OrderMagicNumber()== MAGA) { if(TrailingStop> 0) { if(OrderOpenPrice() - Ask >= Z * TrailingStop * Point) { if(OrderStopLoss() > (Ask + Z*Point* TrailingStop+Z*Point*TrailingStep)) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Z*Point * TrailingStop, OrderTakeProfit(),MAGA, CLR_NONE); return(0); } } } } else if(OrderType() == OP_BUY&&OrderMagicNumber()== MAGA)//||OrderMagicNumber()== MAGIC1) { if(TrailingStop > 0) { if(Bid - OrderOpenPrice() >= Z*TrailingStop * Point) { if(OrderStopLoss() < (Bid - Z*Point * TrailingStop-Z*Point*TrailingStep)) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Z*Point * TrailingStop, OrderTakeProfit() ,MAGA, CLR_NONE); return(0); } } } } } } //OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO if(ZB==0&&ZS==0&&DB==0&&DS==0 ) { Opn_B = true; Opn_S = true; } //OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO // Открытие ордеров while(true) { //OOOOOOOOOOOOOOOOOOOOOOOO ОСНОВНЫЕ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO if(Opn_B == true && BUY ==1) { // CS=1; Alert("Попытка BUY"); if(Opn_B == true && BUY ==1) OrderSend(Symbol(), OP_BUYSTOP,FB*Lts,Ask+Z*ДИСТАНЦИЯ_ВЫСТАВЛЕНИЯ_ОТЛОЖ*Point,2,0,0,"",MAGA,0,Aqua); if(Fun_Error(GetLastError()) == 1) continue; // return(0); } //-------------------------------------------------- if(Opn_S == true&&SELL==1) { // CB=1; Alert("Попытка SELL"); if(Opn_S == true&&SELL==1) OrderSend(Symbol(), OP_SELLSTOP, FS*Lts,Bid-Z*ДИСТАНЦИЯ_ВЫСТАВЛЕНИЯ_ОТЛОЖ*Point,2,0,0,"",MAGA,0,Orange);//TimeCurrent()+TIMELIVE*60 if(Fun_Error(GetLastError()) == 1) continue; return(0); } break; } return(0); } //+------------------------------------------------------------------+ int Fun_Error(int Error) { switch(Error) { case 4: Alert("Торговый сервер занят. Пробуем ещё раз.."); Sleep(3000); return(1); case 135: Alert("Цена изменилась. Пробуем ещё раз.."); RefreshRates(); return(1); case 136: Alert("Нет цен. Ждём новый тик.."); while(RefreshRates() == false) Sleep(1); return(1); case 137: Alert("Брокер занят. Пробуем ещё раз.."); Sleep(3000); return(1); case 146: Alert("Подсистема торговли занята. Пробуем ещё.."); Sleep(500); return(1); case 2: Alert("Общая ошибка."); return(0); } //+------------------------------------------------------------------+ } //............................................................. 123456789...12 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
더 높은
그러나 그것은 더 높은 것이 아니라 내부에 필요합니다. 맨 처음에
아니요, 그렇게 작동하지 않습니다. 왜냐하면 포즈가 없으면 다음 선택기가 나타날 때까지 변수 값이 변경되지 않기 때문입니다.
이것이 내가하고 싶었던 방법입니다.
위의 코드에서 넌센스를 작성했습니다. 다시 말하지만 선택 기능의 플래그가 mode_trades에 있는 경우 주문은 기록이 아닌 현재 선택되므로 마감 시간을 요청하는 것이 의미가 없으며 항상 0이 됩니다.
그것을 고쳤습니다 .. 나는 그것을 스스로 알고 있지만 방금 모든 것을 연속적으로 시도하기 시작했습니다.
그건 그렇고, 이래야 합니까?
아니면 그러한 기초가 효과가 있습니까? 나는 항상 100% 쟁기질을 한다.
if( 주문선택(0,SELECT_BY_POS, MODE_TRADES )==true)
{
if(OrderSymbol()==Symbol())
{
...등...
}
}