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

 
Dimka-novitsek :
죄송합니다. 링크를 따라갈 수 없습니다. 누락된 항목이 있습니다.
int OrdersHistoryTotal ( )
클라이언트 터미널에 로드된 현재 계정 내역에서 마감된 위치 및 삭제된 주문의 수를 반환합니다. 내역 목록의 크기는 터미널의 "계정 내역" 탭의 현재 설정에 따라 다릅니다.
예시:
 // 거래 내역에서 정보 검색
  int i,accTotal=OrdersHistoryTotal();
  for(i=0;i<accTotal;i++)
    {
     //---- 선택 결과 확인
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==거짓)
       {
        Print("기록 데이터베이스에 액세스하는 동안 오류가 발생했습니다(",GetLastError(),")");
        부서지다;
       }
     // 주문으로 작업 ...
    }
 
감사해요!!
 

상태에서 이미 열린 주문의 악기 이름을 올바르게 표시하는 방법을 알려주시겠습니까? EURUSD_bay 주문이 열려 있으면 EURJPY_sell 주문을 열어야 합니다. 제 생각에는 여기에서 뭔가 잘못되었습니다. 줄에서 OrderSymbol()=="EURUSD"를 제거하면 주문이 열리지만 세 번째 주문을 열려면 여전히 이 문제를 해결해야 합니다.

 if (( OrdersTotal ()== 1 )&&(OrderType()==OP_BUY && OrderSymbol()== "EURUSD" ))
     {
     TimeBar=Time[ 0 ];
     OPENORDER2( "Sell" );
     }
 

거래가 특정 시간에 이루어지도록 코드를 작성하는 방법이 어렵지 않은 경우 누군가 조언할 수 있습니다. FAQ를 살펴보았지만 이해가 되지 않았습니다. 나는 프로그래머이지만 이 언어에 대한 지속적인 갈등이 있습니다.

더 자세히 말하면 매일 8-00시에 다음이 필요합니다. 시간당 막대를 가져 와서 연체자를 열어야합니다. 기간 만료 시 또는 TP에 따라 예금자를 폐쇄해야 합니다. 그리고 다시 8-00시에 바 등을 가져갑니다. 아래 코드. Gemer는 첫 번째 거래가 기준에 따라 명확하게 작동하지만 헛된 것으로 판명된다는 것입니다. 실례가 안된다면 도와주세요...

 //Учет закрытых ордеров-----------------------------------------------
   if ( OrderSelect (Ticket,SELECT_BY_TICKET,MODE_HISTORY)==true) or_cl=OrderCloseTime();
   else or_cl=StrToTime(TimeToStr(( TimeCurrent ()+ 24 * 60 * 60 ), TIME_DATE)+ " " + 17 + ":" + 59 );
     
   // Предварит.обработка
  
  time_op=StrToTime(TimeToStr( TimeCurrent (), TIME_DATE)+ " " + 8 + ":" + 0 );
  time_bar=StrToTime(TimeToStr( TimeCurrent (), TIME_DATE)+ " " + 7 + ":" + 0 );
  Cur_time=StrToTime(TimeToStr( TimeCurrent (), TIME_SECONDS));
 
 if (Cur_time>or_cl)
   {time_op+= 24 * 60 * 60 ;
      time_bar+= 24 * 60 * 60 ;}
     else {time_op-= 24 * 60 * 60 ;
          time_bar-= 24 * 60 * 60 ;}  
  
   if (Cur_time<=time_op && Total== 0 ) return ;
   // Определяем часовой квадрат--------------------------------------------------------------
   Hit= NormalizeDouble (High[iBarShift( NULL , PERIOD_H1 ,time_bar)], 5 );
   Lo= NormalizeDouble (Low[iBarShift( NULL , PERIOD_H1 ,time_bar)], 5 ); 
 
coolon :

트랜잭션이 특정 시간에 이루어 지도록 코드를 작성하는 방법이 어렵지 않은 경우 누군가 조언할 수 있습니다. FAQ를 살펴보았지만 이해가 되지 않았습니다. 나는 프로그래머이지만 이 언어에 대한 지속적인 갈등이 있습니다.

더 자세히 말하면 매일 8-00시에 다음이 필요합니다. 시간당 막대를 가져 와서 연체자를 열어야합니다. 기간 만료 시 또는 TP에 따라 예금자를 폐쇄해야 합니다. 그리고 다시 8-00시에 바 등을 가져갑니다. 아래 코드. Gemer는 첫 번째 거래가 기준에 따라 명확하게 작동하지만 헛된 것으로 판명된다는 것입니다. 실례가 안된다면 도와주세요...



https://www.mql5.com/ru/forum/130550

 

죄송합니다. 여기에 말도 안되는 내용을 썼습니다. 가능하면 제가 어디에서 완전히 양인지 보여주세요.

포즈가 전혀 열리지 않는 것 같고 아무 일도 일어나지 않습니다.

//+----------------------------------------------- --------------------+
//| avalanches.mq4용 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"
외부 이중 정지 손실 = 0; extern double takeprofit=20;extern int otstup=20; 외부 날짜 시간 만료 = 0;

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

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

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
int tiket,tickett; 더블 볼륨=0.1;int i=0,R1,R2,A=1 ;더블 가격=PRICE_OPEN;
R1=((PRICE_OPEN- 손절매*포인트)*손절매)/손절매;R2=((PRICE_OPEN+ 손절매*포인트)*손절매)/손절매;


정수 시작()
{
//----

주문 선택( 티켓,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal() ;
만약 (i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, 볼륨*A, 가격 +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, 만료, 빨간색);
Alert("OP_BUYSTOP", GetLastError( ));
tikett= OrderSend( Symbol(), OP_SELLSTOP, 볼륨*A, 가격 -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, 만료,C'0,128,255' );
Alert("OP_SELLSTOP", GetLastError( ));
i=주문 총계() ; } } }

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

 
double stoploss=0
0으로 나눌 수 없습니다.
 
좋은 분들 도와주세요!!!!!! 중간 볼린저 밴드의 모든 위치를 닫으려면 스크립트가 필요합니다!!!!! 물론이죠!!!!
 
alexr7 :
좋은 분들 도와주세요!!!!!! 우리는 중간 볼린저 밴드의 어떤 위치라도 닫는 스크립트가 필요합니다!!!!! 물론이죠!!!!
그리고 포지션 이 볼린저의 중간 밴드에 있다는 기준은 무엇입니까?
 
artmedia70 :
그리고 포지션 이 볼린저의 중간 밴드에 있다는 기준은 무엇입니까?
빠른 답변 정말 감사합니다!!!!!!!!!!!!!!!!!!!!!!!! 기준 - 매개변수가 있는 표준 볼린저 밴드 표시기: 기간 20, 시프트 0, 편차 2, 가중 종가(HLCC/4)!!!!!!!