[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 590

 
Bana literatürü anlat ki, okuyup kendi danışmanımı yaratayım! Yoksa sadece ölümlülere verilmez mi? )))
 
rigonich :

1.:))) DEĞİŞTİRMEME diye bir koşul yoktur! :))) . Hayır, ancak hemen hemen her koşulu oluşturmanıza izin veren bir if ifadesi var.

2. Bir siparişi yalnızca bir kez değiştirmek istiyorsanız, neden değiştiriyorsunuz? Bir sipariş açarken gerekli parametreleri ayarlayın.

3. Ve duraklar hakkında - sonuçta, bir anlaşma yalnızca bir durdurma ile değil, aynı zamanda daha önce de, örneğin bir darbe için koşullar oluşursa, örneğin ... veya sadece piyasadan bir çıkışla kapatılabilir.

Bütün bunlar mümkün, soru görevde (hedefiniz). Hazır bir ticaret stratejiniz varsa ve bunu yalnızca "mekanize etmeniz" gerekiyorsa, bu bir şeydir, ancak herhangi bir ticaret stratejisiyle nasıl yapılacağını öğrenmek istiyorsanız, bu başka bir şeydir. Birincisi için hazır bir stratejiniz olmalı, ikincisi için programlamayı öğrenmelisiniz.


1) anlaşılabilir

2) Az önce kontrol ettim... Alpari'de açılışta durup duramazsınız. sadece müteakip değişiklik yoluyla ... işlem dışı masa maliyetleri

3) bir strateji var.

 
Beowulf :
Bana literatürü anlat ki kendi danışmanımı başlatıp yaratayım! Yoksa sadece ölümlülere verilmez mi? )))

https://book.mql4.com/en/
 

Teşekkür ederim!
 
lottamer :


:))) DEĞİŞTİRMEMEK için böyle bir koşul yoktur! :)))

if ((bir kez babanız+anneniz == chik-chik-chik) == DOĞRU) lottamer

SORU: Şimdi hangi şartlar altında chik-chik-chik konuşmayacağız?! :)))

 
Beowulf :
Bana literatürü anlat ki kendi danışmanımı yaratıp başlayayım ! Yoksa sadece ölümlülere verilmez mi? )))
Biz (sadece ölümlüler) bunu anlamıyoruz! ;)))
 
lottamer :


1) anlaşılabilir

2) Az önce kontrol ettim... Alpari'de açılışta durup duramazsınız. sadece müteakip değişiklik yoluyla ... işlem dışı masa maliyetleri

3) bir strateji var.


O zaman önerdiğin kadar basit. Değişiklikten sonra onay kutusunu ayarlayın ve değişiklikten önce durumunu kontrol edin.Bu, bir sipariş varsa. Birkaç tane varsa, siparişleri kendiniz dikkate almalısınız. Nasıl - makaleler bölümünde.
 
TarasBY :
Biz (sadece ölümlüler) bunu anlamıyoruz! ;)))



Eh, her şeyi okuyacağım, vakumumu biraz zorlayacağım))))
 

Yoldaşlar, söyleyin bana, siparişler rollover ile yeniden açıldığında, dur ve al değerleri için kaymalar mümkün mü? ve devirden sonra açılış fiyatı ile stop arasındaki fark stop seviyesinden daha az olacaksa stop nasıl ayarlanacak?

Genel olarak, görevim aşağıdaki gibidir. Açık bir piyasa emri var, bunun rollover ile açık olup olmadığını belirlemeli ve varsa bir önceki kapatılmış emrin biletini almalısınız. Birisi bir arama algoritması önerebilir mi? Şimdilik bunu yapıyorum:

1. İlk açık siparişi seçiyorum.
2. Açılış saatini izliyorum, eğer 23:40'tan 00:20'ye kadar açıldıysa, o zaman bu siparişi daha da kontrol etmeye devam ediyorum (Her itfaiyeci için 40 dakika boyunca bir pencere aldım, ancak teoride onu alabilirsin 23:50 - 23:59)
3. Biletini hatırlıyorum, dur ve al
4. Yorumların takas kelimesini içerdiği ve döviz çiftlerinin eşleştiği tarihteki tüm kapalı emirleri kontrol ederim.
5. Duraklar ve alımlardaki verileri karşılaştırırım, eğer eşleşirlerse, o zaman burada istenen emir çiftidir, değilse, adım 1'e dönerim

 

CEVAP BULDU (kişisel olarak), ancak yazıyı tarihe bırakacağım! :))))

----------------------------------

ve işte ilginç bir şey...

Bir betiğim var (bunu ağdan aldım). açık bir siparişi değiştirir.

Benim fikrim şuydu: tamamen al ve danışmanıma özel bir işlev olarak ekle ve gerektiğinde ona başvur.

sorun, derleyicinin "' MB_OK ' - değişken tanımlı değil hatası vermesidir. G:\Program_Files_2\MT4-demo\experts\33.mq4 (153, 37)" - Sondan 3. satır

Ve betiğin kendisini derlerseniz, her şey temiz!

MV_OK'un ne olduğunu buldum... ama neden senaryoda geçiyor anlamıyorum ama Expert Advisor'da küfür ediyor???

 //+------------------------------------------------------------------+
//|                                               Изменить стопы.mq4 |
//|                                                          Мефодий |
//|                                                    ppc-2@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Мефодий"
#property link       "ppc-2@mail.ru"
#include <WinUser32.mqh>

extern    int   StopLoss = 500 ; 
extern    int   TakeProfit = 500 ;

// #property show_confirm
// #property show_inputs

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

int start()
  {
         bool    result;
         double stop_loss,take_profit,point,bid,ask, lotsize;
         int     cmd, total, error, spread;
         string message;
//----
   total= OrdersTotal ();

//----
   for ( int i= 0 ; i<total; i++)
     {
       if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
        {
         //---- print selected order
         OrderPrint();
         cmd=OrderType();
         point=MarketInfo(OrderSymbol(),MODE_POINT);
         bid= MarketInfo(OrderSymbol(),MODE_BID);
         ask= MarketInfo(OrderSymbol(),MODE_ASK);
         spread=MarketInfo(OrderSymbol(),MODE_SPREAD);     
         //---- buy or sell orders are considered
         if (cmd==OP_BUY || cmd==OP_SELL)
          {
             //---- modify first market order
             while ( true )
             {
                 if (cmd==OP_BUY){
                         string type = "buy" ;
                         if (OrderStopLoss()!= 0 )stop_loss=OrderStopLoss();
                         else stop_loss=OrderOpenPrice()-StopLoss*point;
                         if (OrderTakeProfit()!= 0 )take_profit=OrderTakeProfit();
                         else take_profit=OrderOpenPrice()+TakeProfit*point;
                }
                     
                 else {
                        type = "sell" ;
                         if (OrderStopLoss()!= 0 )stop_loss=OrderStopLoss();
                         else stop_loss=OrderOpenPrice()+StopLoss*point;
                         if (OrderTakeProfit()!= 0 )take_profit=OrderTakeProfit();
                         else take_profit=OrderOpenPrice()-TakeProfit*point;
                }   
                result=OrderModify(OrderTicket(), OrderOpenPrice(), stop_loss, take_profit, 0 , CLR_NONE );
                 if (result!= true ) { error= GetLastError (); Print ( "LastError = " ,error);}
                 else {error= 0 ;}
                 if (error== 135 ) RefreshRates();
                 else break ;
              }
                 if (error== 0 ){
                        message=message+ "Ордер #" +OrderTicket()+ " - " +type+ " - " +DoubleToStr(OrderLots(), 2 )+ " успешно модифицирован.\n" ;
                        }
                         else {
                                 if (error == 130 ){ string error_desc = " - Неправильные стопы" ;} else error_desc = "" ;
                                 if (error != 1 )
                        message=message+ "Ошибка модификации ордера #" +OrderTicket()+ " - " +type+ " - " +DoubleToStr(OrderLots(), 2 )+ ". " +error_desc+ " \n" ;
                        }

               //---- print modified order (it still selected after modify)
              OrderPrint();
               continue ;             
           }
        }
       else { Print ( "Error when order select " , GetLastError ()); break ;}
     }
         int ret= MessageBox (message, NULL , MB_OK );
         //if(ret==IDOK) return(0);
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+