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

 
gince :

제발.

논리의 문제 - 나는 그것을 생각할 수 없습니다.

사실, 당신은 논리에 문제가 있습니다. 그런 다음 deferred가 원하는 만큼 표시되도록 허용한 다음 그 중 하나를 연 후 모두 삭제하려고 하는데 새로운 deferred가 모두 삭제되는 것에 놀랐습니다. 그런 다음 다음 지연이 촉발된 후 어떤 일이 발생해야 하는지 계속 생각하십시오. 알고리즘은 이에 따라 달라집니다.
 
Roger :
사실, 당신은 논리에 문제가 있습니다. 그런 다음 deferred가 원하는 만큼 표시되도록 허용한 다음 그 중 하나를 연 후 모두 삭제하려고 하는데 새로운 deferred가 모두 삭제되는 것에 놀랐습니다. 그런 다음 다음 지연이 촉발된 후 어떤 일이 발생해야 하는지 계속 생각하십시오. 알고리즘은 이에 따라 달라집니다.

내 생각을 수정해 주셔서 감사합니다. 원자는 이미 집착하고 있습니다.

첫 번째 세트 레이오프(매수한도라고 가정) 후, 같은 방향으로 더 많은 레이오프를 배치할 수 있지만 신호가 반대쪽(매도한도라고 가정)에 나타날 때 모든 매수 포지션과 주문을 제거하는 방법은 무엇입니까?

 

좋은 저녁이에요! 죄송합니다. 해결되지 않은 문제로 돌아가고 싶습니다.

 if (!Pishem&&PozyProstavleny){SaveArray(FileBuy, Buy); SaveArray(FileSell, Sell); Pishem= 1 ;}

'구매' - 호환되지 않는 유형 D:\TeleTRADE\experts\pure variant.mq4 (102, 53)

'판매' - 호환되지 않는 유형 D:\TeleTRADE\experts\pure variant.mq4 (102, 79)

 //записать

void SaveArray( string File, double &a[])
{
     int h = FileOpen (File, FILE_BIN | FILE_WRITE );
     if (h> 0 )
    {
       int sz = ArraySize (a); 
       FileWriteArray (h,a, 0 ,sz);
       FileClose (h);
    }
}

//прочитать

void OpenArray( string File, double &a[], int sz)
{
     int h = FileOpen (File, FILE_BIN | FILE_READ );
     if (h> 0 )
    {
       ArrayResize (a,sz);
       FileReadArray (h,a, 0 ,sz);
       FileClose (h);
    }
}
 
 
그런 다음 대화가 어떻게 든 작동하지 않았습니다.
 
int Buy[];int Sell[];       string FileBuy="FileBuy.csv",FileSell="FileSell.csv";         

 
좋은 하루에요. 예를 들어 bool=uroven_1=false와 같이 전역 변수 bool 을 작성하는 방법을 알려주십시오. 터미널을 다시 시작한 후 새 값을 갖도록 전역 변수에 이것을 쓰는 방법, 감사합니다.
 
laveosa :
좋은 하루에요. 예를 들어 bool=uroven_1=false와 같이 전역 변수 bool 을 작성하는 방법을 알려주십시오. 터미널을 다시 시작한 후 새 값을 갖도록 전역 변수에 이것을 쓰는 방법, 감사합니다.


https://book.mql4.com/en/variables/globals
 
Roger :


논리가 정확합니다. 주문에는 주문이 있는 만큼의 위치 번호가 있어야 하며, 하나가 마감되자마자 나머지는 모두 다시 계산되었습니다. 이 디자인을 시도

답변.

안녕하세요.
불행히도 제안된 디자인은 원하는 결과를 제공하지 않습니다. 프로그램 코드와 테스터 로그의 항목이 제공됩니다.
감사합니다. 쉬르킨
2013년 3월 18일.

Код программы.

//+------------------------------------------------------------------+
//|                                                     Poligon1.mq4 |
//|                                            21 февраля 2013 года. |
//|Тестирование оператора цикла for.                                 |
//+------------------------------------------------------------------+
#property copyright "21 февраля 2013 года."
#property link       ""
//+------------------------------------------------------------------+
//|Объявленные переменные                                            |
//+------------------------------------------------------------------+
int Mn= 357 ; //Magic number
int i; //Показатель счётчика итераций
double PriTP; //TP серии
int Tick; //Счётчик тиков
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----Установка серии ордеров
OrderSend ( Symbol (),OP_BUY, 0.5 ,Ask, 0 , NormalizeDouble (Bid- 35 * Point , Digits ),
NormalizeDouble (Ask+ 35 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 1 ,Ask, 0 , NormalizeDouble (Bid- 25 * Point , Digits ),
NormalizeDouble (Ask+ 25 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 1.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 2.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUY, 3.5 ,Ask, 0 , NormalizeDouble (Bid- 15 * Point , Digits ),
NormalizeDouble (Ask+ 15 * Point , Digits ), NULL ,Mn, 0 , CLR_NONE ); //OP_BUY
OrderSend ( Symbol (),OP_BUYLIMIT, 1 , NormalizeDouble (Ask- 15 * Point , Digits ), 0 ,
NormalizeDouble (Bid- 40 * Point , Digits ), NormalizeDouble (Ask+ 25 * Point , Digits ),
NULL ,Mn, 0 , CLR_NONE ); //OP_BUYLIMIT
OrderSend ( Symbol (),OP_SELLSTOP, 3 , NormalizeDouble (Ask- 30 * Point , Digits ), 0 ,
NormalizeDouble (Bid+ 15 * Point , Digits ), NormalizeDouble (Ask- 75 * Point , Digits ),
NULL ,Mn, 0 , CLR_NONE ); //OP_SELLSTOP
//----
   PriTP=Bid; //PriTP
   Print ( "Кс0:" , " OrdersTotal=" , OrdersTotal ()); //Сообщение
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Tick++; //Tick
//   Print("Кс0:"," Tick=",Tick);//Сообщение
//----
//   for(i=0;i<OrdersTotal();i++)//Инициализация цикла
//   for(i=OrdersTotal()-1; i>=0; i--)//
   for (i= 0 , int k= 0 ; i< OrdersTotal ();i++,k++) //
   {
   Print ( "Кс1:" , " Tick=" ,Tick, " i=" ,i, " k=" ,k); //Сообщение
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) //Выбор ордера i
    {
   if (OrderSymbol()== Symbol ()) //Символ
     {
   if (OrderMagicNumber()==Mn) //Идентификационное число
      {
   if (OrderType()==OP_BUY && OrderTakeProfit()>PriTP) //Тип операции текущего выбранного ордера
       {
   OrderClose(OrderTicket(),OrderLots(),Bid, 0 , CLR_NONE ); //Закрытие позиции
   k--; //Зачем сначала прибавлять и тут же убавлять ???
       } //Закрыто if(OrderType()==OP_BUY && OrderTakeProfit()>PriTP)
      } //Закрыто if(OrderMagicNumber()==Mn)
     } //Закрыто if(OrderSymbol()==Symbol()
    } //Закрыто if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
   } //Закрыто for(i=0;i<OrdersTotal();i++)
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+ 
Записи в журнале тестера.
2013.03.18 09:42:48 2013.02.11 12:16  Poligon1 EURUSD,M15: Кс1: Tick=5 i=1 k=1
2013.03.18 09:42:48 2013.02.11 12:16  Poligon1 EURUSD,M15: Кс1: Tick =5 i=0 k=0
2013.03.18 09:42:24 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=4 i=1 k=1
2013.03.18 09:42:24 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =4 i=0 k=0
2013.03.18 09:42:00 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=3 i=1 k=0
2013.03.18 09:42:00 2013.02.11 12:15  Poligon1 EURUSD,M15: close #4 buy 2.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3393
2013.03.18 09:42:00 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =3 i=0 k=0
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=2 i=2 k=1
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=2 i=1 k=0
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: close #2 buy 1.00 EURUSD at 1.3397 sl: 1.3370 tp: 1.3422 at price 1.3394
2013.03.18 09:41:36 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =2 i=0 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=1 i=3 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: close #5 buy 3.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=1 i=2 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: close #3 buy 1.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 at price 1.3395
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick=1 i=1 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: close #1 buy 0.50 EURUSD at 1.3397 sl: 1.3360 tp: 1.3432 at price 1.3395
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс1: Tick =1 i=0 k=0
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: Кс0: OrdersTotal=7
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #7 sell stop 3.00 EURUSD at 1.3367 sl: 1.3410 tp: 1.3322 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #6 buy limit 1.00 EURUSD at 1.3382 sl: 1.3355 tp: 1.3422 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #5 buy 3.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #4 buy 2.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #3 buy 1.50 EURUSD at 1.3397 sl: 1.3380 tp: 1.3412 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #2 buy 1.00 EURUSD at 1.3397 sl: 1.3370 tp: 1.3422 ok
2013.03.18 09:41:12 2013.02.11 12:15  Poligon1 EURUSD,M15: open #1 buy 0.50 EURUSD at 1.3397 sl: 1.3360 tp: 1.3432 ok
2013.03.18 09:41:12 Poligon1 test started
2013.03.18 09:40:59 Poligon1: loaded successfully

 
barok2 :

MT4 테스터에서 MT4 Expert Advisor WOC0.1.2(Forex Club의 MT4 애플리케이션)를 테스트할 때 차트의 주문 레이블이 가격 위에 매달려 있습니다. 존재하지 않는 가격으로 거래가 이루어졌습니다. 테스터 결함인가요? 어떻게 고칠 수 있습니까?

http://s017.radikal.ru/i405/1303/61/959038aaf1a9.jpg

그리고 한 가지 더: 거래는 테스터의 시각화 모드에서 이루어지지만 그것 없이는 이루어지지 않습니다.


나 자신을 이해했다. 주말 동안 테스터에서 확산(81)이 증가했기 때문입니다.
 
Shurkin :
내 예를 잘못 복사했기 때문입니다. i와 k가 어디에 있는지 주의 깊게 살펴보십시오.