Açık pozisyonları gruplara ayırma - sayfa 12

 
Sergey Voytsekhovsky :
İşe yaramış gibi görünüyor, her TakeProfit için eksileri olan bir baskı var ve piyasaya her giriş için artıları olan bir baskı var. Kollektif çiftlik argosu için özür dilerim, ama ben tamamen kendi kendini yetiştirmiş bir insanım, bu konuda konuşacak kimse yok, kelimeleri bilmiyorum.


Evet ve kendi kendimi yetiştirdim. Genel olarak kodu kısalttım, kısalttım ve kısalttım... Sizinle diyalog olmasaydı, bu sorunları biraz sonra keşfederdim...

Özellikleri okumadan önce koda bir anlaşma seçimi eklemek gerekir.

     HistoryDealSelect (trans.deal);

veya seçimin başarısını kontrol ederek.

     if (! HistoryDealSelect (trans.deal))
       Print ( GetLastError ());
 
Alexey Viktorov :

Evet ve kendi kendimi yetiştirdim. Genel olarak kodu kısalttım, kısalttım ve kısalttım... Sizinle diyalog olmasaydı, bu sorunları biraz sonra keşfederdim...

Her ne kadar bir şekilde işe yarasa da, konuşmak her zaman faydalıdır ve konuşmanın faydalı olup olmayacağını daha sonra öğreneceksiniz. Böylece, en konuşkan insanlar ortalama alarak MinFavor'u arttırır, ancak MaxFavor'u düşürür. Eck geri çevirdim.

Надо добавить в код выбор сделки перед чтением свойств.

или с проверкой успешности выбора.

Bunlar yüksek sesle düşünceleriniz mi yoksa bunu yapmamı mı önerirsiniz ???

 

fonksiyon ile

 bool    HistoryDealSelect ( 
   ulong   ticket     // тикет сделки 
   );

dikkatli olmalısın orda bir özellik çıkardım daha nasıl kullanacağımı bilmiyorum

Функция HistoryDealSelect () очищает в mql5-программе список сделок, доступных для обращений, и копирует в него одну единственную сделку, если выполнение HistoryDealSelect () завершилось успешно.
 

Bir sonraki görev, bilgili insanları tartışmaya davet etmektir.

Bir anlaşma biletine sahip olmak ( TP'de bir pozisyonu kapatarak ), bu anlaşma tarafından kapatılan bir pozisyonun biletini nasıl iade eder ?

 2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    take profit triggered # 6571 buy 0.01 EURUSD 1.16343 tp: 1.16389 [ # 6572 sell 0.01 EURUSD at 1.16389 ]
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    deal # 6572 sell 0.01 EURUSD at 1.16389 done (based on order # 6572 )
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    deal performed [ # 6572 sell 0.01 EURUSD at 1.16389 ]
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    order performed sell 0.01 at 1.16389 [ # 6572 sell 0.01 EURUSD at 1.16389 ]
2020.04 . 12 18 : 15 : 09.620 Core 1    2018.06 . 19 04 : 52 : 40    Закрыта позиция --- Тикет сделки--- 6572 ---Позицию в структуре ArrayDealOut пометить на удаление ------------

Mesele şu ki, gerçek pozisyonların saklanması gereken bir yapıya sahibim. Oyundan çıktıklarında temizlenmeleri gerekir.

???

 
Sergey Voytsekhovsky :

Her ne kadar bir şekilde işe yarasa da, konuşmak her zaman faydalıdır ve konuşmanın faydalı olup olmayacağını daha sonra öğreneceksiniz. Böylece, en konuşkan insanlar ortalama alarak MinFavor'u arttırır, ancak MaxFavor'u düşürür. Eck geri çevirdim.

Bunlar yüksek sesle düşünceleriniz mi yoksa bunu yapmamı mı önerirsiniz ???

Sadece tavsiye etmekle kalmıyor, aynı zamanda kodumda yakın zamanda silinen satırı da döndürdü.

 
Sergey Voytsekhovsky :

fonksiyon ile

dikkatli olmalısın orda bir özellik çıkardım daha nasıl kullanacağımı bilmiyorum

Nerede bir seçim yapılacağına bağlı. OnTradeTransaction'da bu hiçbir şeyi tehdit etmez. Ve genel olarak, bir emir, anlaşma veya pozisyonun özelliklerine erişmeden önce onu seçmeyi alışkanlık haline getirmelisiniz.

Ve seçimden sonra yürütme bir işleve giderse ve içinde başka bir seçim yapılırsa, geri döndüğünüzde listenin en son seçileni içereceğini unutmayın.

 
Sergey Voytsekhovsky :

Bir sonraki görev, bilgili insanları tartışmaya davet etmektir.

Bir anlaşma biletine sahip olmak ( TP'de bir pozisyonu kapatarak ), bu anlaşma tarafından kapatılan bir pozisyonun biletini nasıl iade eder ?

Mesele şu ki, gerçek pozisyonların saklanması gereken bir yapıya sahibim. Oyundan çıktıklarında temizlenmeleri gerekir.

???

Şey, oldukça basit...

 /*********************TradeTransaction function**********************/
void OnTradeTransaction ( const MqlTradeTransaction & trans,
                         const MqlTradeRequest & request,
                         const MqlTradeResult & result)
 {
  if (trans.type == TRADE_TRANSACTION_DEAL_ADD && trans.symbol == _Symbol )
   {
     if (! HistoryDealSelect (trans.deal))
      Print(GetLastError());
     /******************** Если открылась позиция********************/
     if ( HistoryDealGetInteger (trans.deal, DEAL_ENTRY ) == DEAL_ENTRY_IN )
       Print ( "********** открытие сделка " , trans.deal, " позиция " , trans.position);
     /******************** Если закрылась позиция********************/
     if ( HistoryDealGetInteger (trans.deal, DEAL_ENTRY ) == DEAL_ENTRY_OUT )
     {
       if ( HistoryDealGetInteger (trans.deal, DEAL_REASON ) == DEAL_REASON_TP )
       {
         Print ( "********** закрытие по тейку сделка " , trans.deal, " позиция " , trans.position);
       }
       if ( HistoryDealGetInteger (trans.deal, DEAL_REASON ) == DEAL_REASON_SL )
       {
         Print ( "********** закрытие по стопу сделка " , trans.deal, " позиция " , trans.position);
       }
     }
   }
 } /*******************************************************************/
CN       0        19 : 20 : 27.920     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 20    ********** закрытие по стопу сделка 27 позиция 26
CG       0        19 : 20 : 27.920     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 20    ********** открытие сделка 28 позиция 28
HJ       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    stop loss triggered # 28 buy 0.1 GBPUSD.m 1.30698 sl: 1.30598 tp: 1.30798 [ # 29 sell 0.1 GBPUSD.m at 1.30598 ]
GE       0        19 : 20 : 28.023     Trades   2020.02 . 03 12 : 01 : 40    deal # 29 sell 0.1 GBPUSD.m at 1.30598 done (based on order # 29 )
JF       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    deal performed [ # 29 sell 0.1 GBPUSD.m at 1.30598 ]
CD       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    order performed sell 0.1 at 1.30598 [ # 29 sell 0.1 GBPUSD.m at 1.30598 ]
GI       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    market buy 0.1 GBPUSD.m sl: 1.30512 tp: 1.30712 ( 1.30598 / 1.30612 / 1.30598 )
FQ       0        19 : 20 : 28.023     Trades   2020.02 . 03 12 : 01 : 40    deal # 30 buy 0.1 GBPUSD.m at 1.30612 done (based on order # 30 )
QQ       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    deal performed [ # 30 buy 0.1 GBPUSD.m at 1.30612 ]
ON       0        19 : 20 : 28.023     Trade   2020.02 . 03 12 : 01 : 40    order performed buy 0.1 at 1.30612 [ # 30 buy 0.1 GBPUSD.m at 1.30612 ]
KR       0        19 : 20 : 28.025     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 40    CTrade:: OrderSend : market buy 0.10 GBPUSD.m sl: 1.30512 tp: 1.30712 [done at 1.30612 ]
RM       0        19 : 20 : 28.025     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 40    ********** закрытие по стопу сделка 29 позиция 28
FP       0        19 : 20 : 28.025     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 01 : 40    ********** открытие сделка 30 позиция 30
NK       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    take profit triggered # 30 buy 0.1 GBPUSD.m 1.30612 sl: 1.30512 tp: 1.30712 [ # 31 sell 0.1 GBPUSD.m at 1.30712 ]
IS       0        19 : 20 : 28.295     Trades   2020.02 . 03 12 : 02 : 39    deal # 31 sell 0.1 GBPUSD.m at 1.30712 done (based on order # 31 )
NE       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    deal performed [ # 31 sell 0.1 GBPUSD.m at 1.30712 ]
KI       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    order performed sell 0.1 at 1.30712 [ # 31 sell 0.1 GBPUSD.m at 1.30712 ]
IH       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    market buy 0.1 GBPUSD.m sl: 1.30626 tp: 1.30826 ( 1.30712 / 1.30726 / 1.30712 )
EI       0        19 : 20 : 28.295     Trades   2020.02 . 03 12 : 02 : 39    deal # 32 buy 0.1 GBPUSD.m at 1.30726 done (based on order # 32 )
LR       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    deal performed [ # 32 buy 0.1 GBPUSD.m at 1.30726 ]
RL       0        19 : 20 : 28.295     Trade   2020.02 . 03 12 : 02 : 39    order performed buy 0.1 at 1.30726 [ # 32 buy 0.1 GBPUSD.m at 1.30726 ]
HR       0        19 : 20 : 28.297     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 02 : 39    CTrade:: OrderSend : market buy 0.10 GBPUSD.m sl: 1.30626 tp: 1.30826 [done at 1.30726 ]
HS       0        19 : 20 : 32.663     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 02 : 39    ********** закрытие по тейку сделка 31 позиция 30
KP       0        19 : 20 : 32.663     ! 00 (GBPUSD.m,H1)       2020.02 . 03 12 : 02 : 39    ********** открытие сделка 32 позиция 32
 
Alexey Viktorov :

Nerede bir seçim yapılacağına bağlı. OnTradeTransaction'da bu hiçbir şeyi tehdit etmez. Ve genel olarak, bir emir, anlaşma veya pozisyonun özelliklerine erişmeden önce onu seçmeyi alışkanlık haline getirmelisiniz.

Ve seçimden sonra yürütme bir işleve giderse ve içinde başka bir seçim yapılırsa, geri döndüğünüzde listenin en son seçileni içereceğini unutmayın.

Lanet olsun, tüm bunları nasıl anlayabilirim, benim için aşkın bir soyutlama.

Bilinen bir anlaşmayla kapatılmış bir pozisyonun biletini aramakla yukarıdaki sorunu çözmem gerekiyor - bu yüzden hemen baskıdan talep ettim, bu yüzden hemen başladığım yere geri döndüm - tüm TakeProfit'lerin baskıya girmesinden çok uzak .

 
Alexey Viktorov :

Şey, oldukça basit...

Yo-my, bunca zaman "benim çekiciliğim" vardı ve çok mütevazi bir şekilde sessizdin???

Sana büyük merhamet.

Ama bir sürü yeni şey öğrendim, ama sadece yeniden yayınlayacağım ve hepsi bu - ne zihin ne de kalp.

 
Sergey Voytsekhovsky :

Yo-my, bunca zaman "benim çekiciliğim" vardı ve çok mütevazi bir şekilde sessizdin???

Sana büyük merhamet.

Ama bir sürü yeni şey öğrendim, ama tekrar yayınlayacağım ve hepsi bu - ne aklım ne kalbim.

Evet, hiçbir şey yoktu. Bunu doğrulama için yazdım ve geçmiş verilerde hata ayıklayıcıda çalıştırdım. Hata ayıklayıcı kullanmayı öğrenin. Bu çok faydalı bir beceridir.

Excell'de VBA (Visual Vasik for Applications) olarak adlandırılan bir Vasik üzerinde programlamaya başladım.Orada hata ayıklama ile tanıştım. Sonrasında alınan değerleri kontrol etmek için baskılara alışmak benim için ne kadar zor oldu... Ve mql5'e hata ayıklama özelliği girdiğinde, çilemin bittiğine bir çocuk gibi sevinmiştim.