Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1210

 
MQL_User :

Böyle bir sorunla karşılaşacağımı düşünmemiştim, çünkü ilk bakışta, grafiği programdan yeniden çizmek için kabul edilmelidir. Bu ışıkta, ChartRedraw() işlevinin amacı belirsizdir ...

Bu, göstergeler için değil, grafik nesnelerin özelliklerinde yapılan değişiklikleri görüntülemek içindir.

Göstergeye bir onay işareti göndermeniz gerekir - ardından gösterge yeniden çizilecektir. Eh.., yani, yapması gerekeni yeni bir kene üzerinde yapacak.

Ve yeni bir onay işareti göndermek için, bir seçenek olmayan onu beklemeniz veya yine bir seçenek olmayan RMB grafiği --> Yenile'yi güncellemeniz veya aşağıdaki parametrelerle ChartSetSymbolPeriod() işlevini kullanmanız gerekir. mevcut grafik:

 ChartSetSymbolPeriod ( 0 , NULL , PERIOD_CURRENT );
Документация по MQL5: Операции с графиками / ChartSetSymbolPeriod
Документация по MQL5: Операции с графиками / ChartSetSymbolPeriod
  • www.mql5.com
Меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд. Возвращает true в случае удачного помещения команды в очередь графика, иначе false. Чтобы...
 


merhaba, çözmeme yardım et, limit emri açan bir senaryo yazdım ama piyasa fiyatından. Her şey çalışıyor, limiti piyasanın altına / üstüne ayarlamak için değiştirmeye karar verdim, iade kodu teklif vermesine rağmen hiçbir şey olmuyor. server 10009 ve GetLastError () 0 döndürür. Kod:

 void OnStart ()
 { MqlTradeRequest request={ 0 };
   MqlTradeResult   result={ 0 };
 double Bid= SymbolInfoDouble ( Symbol (), SYMBOL_BID );
 double Ask= SymbolInfoDouble ( Symbol (), SYMBOL_ASK );
 int digits= SymbolInfoInteger ( _Symbol , SYMBOL_DIGITS );  
 double p= NormalizeDouble ( ChartPriceOnDropped (),digits); 
 if ( SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE )== 10 )
 {p= NormalizeDouble ( ChartPriceOnDropped ()* 0.1 ,digits)/ 0.1 ;
 } 
 int V= 75 ;
           if (p<Ask)
            {
             request.action   = TRADE_ACTION_PENDING ;                     // тип торговой операции
             request.symbol   = Symbol ();                               // символ
             request.volume   = MathFloor ( AccountInfoDouble ( ACCOUNT_BALANCE )/V/((Ask-p)/
             SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_SIZE )* SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_TICK_VALUE )));  
             if (request.volume> AccountInfoDouble ( ACCOUNT_BALANCE )/ SymbolInfoDouble ( _Symbol , SYMBOL_MARGIN_INITIAL )) 
             { request.volume= MathFloor ( AccountInfoDouble ( ACCOUNT_BALANCE )/ SymbolInfoDouble ( _Symbol , SYMBOL_MARGIN_INITIAL ));
             }                             
             request.type     = ORDER_TYPE_BUY_LIMIT ;                         // тип ордера
             request.price    =Ask;                                     // цена для открытия
             request.deviation= 50 ;                                     // допустимое отклонение от цены
             request.sl      =p;                                       // Stop Loss позиции
             request.tp      = NormalizeDouble (Ask+(Ask-p)* 3 ,digits);     // Take Profit позиции
             request.type_filling= ORDER_FILLING_IOC ;
             request.type_time= ORDER_TIME_DAY ;
             request.stoplimit=Ask;
             OrderSend (request,result);
            }
request.price ayarlanırsa, örneğin: Ask-Point()*30 ayarlanmaz, fiyat normalizasyonu da hiçbir şey vermez
 
Artem, yukarıdaki soruya ne diyebilirsin ki, görüş ilginç. bir öğrenme olarak.
 
Artyom Trishkin :

Bu, göstergeler için değil, grafik nesnelerin özelliklerinde yapılan değişiklikleri görüntülemek içindir.

Göstergeye bir onay işareti göndermeniz gerekir - ardından gösterge yeniden çizilecektir. Eh.., yani, yapması gerekeni yeni bir kene üzerinde yapacak.

Ve yeni bir onay işareti göndermek için, bir seçenek olmayan onu beklemeniz veya yine bir seçenek olmayan RMB grafiği --> Yenile'yi güncellemeniz veya aşağıdaki parametrelerle ChartSetSymbolPeriod() işlevini kullanmanız gerekir. mevcut grafik:

Artyom, teşekkürler.

Her şey çalıştı. :)

 
Belki birisi görsel test sırasında danışmanda kullanılan tüm göstergelerin grafikte görüntülenmesini nasıl devre dışı bırakacağını biliyordur?
 
Сергей Таболин :
Belki birisi, grafikte görsel testler sırasında danışmanda kullanılan tüm göstergelerin görüntülenmesini nasıl devre dışı bırakacağını biliyordur?

TesterHideIndicators(true);

 

Bir göstergenin farklı bir zaman diliminde çalışmaya hazır olup olmadığı nasıl belirlenir?

Geçmiş, bitişik zaman dilimleri için pompalanmaz (oluşturulmaz). Gösterge M15'te çalışır, ancak H1'e (M15 grafiğinin üstünde) bakmanız gerekir, geçiş yaparsınız - ve grafik boştur. Birkaç saniye içinde güncellersiniz - güzellik, tüm tamponlar çizilir.

göstergenin kendisinin farklı bir zaman diliminde tarihin varlığını kontrol etmesini ve hesaplamayı görünene kadar tutmasını nasıl sağlayabilirim?

 
Igor Zakharov :

TesterHideIndicators(true);

Çok teşekkürler )))

 

başka bir zaman diliminden ATP değerleri alınamıyor:

ATR_handle= iATR ( _Symbol ,ATR_TF,ATR_Period);
CopyBuffer (ATR_handle, 0 ,time[i], 1 ,ATR);

akımdan - çalışır. yaşlılardan - her zaman 0

 

Vadeli işlemlerde kalıcı bir sözleşme nasıl oluşturulur? teknik tablo analizi için?

Neden: