MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 257

 
Tekrar merhaba! Bu bayağılığa yardım et sana, çözemedim....

Aşağıdakileri yapmak istiyorum!

İlk anlaşma örneğin 1.23455'lik bir fiyatla açıldığında, fiyat 1.23415'e gittiğinde ikinci anlaşmanın açılmasını istiyorum.

PHP kodu:
double positionTPask = NormalizeDouble ( Sor * Nokta , Rakamlar );
double lastTPask1 = NormalizeDouble ( Sor - 40 * Nokta , Rakamlar );

if (
RSI0 < RSIDownLevel && RSIDownLevel <= RSI1 ){
TP = NormalizeDouble ( İste + kar al * Puan , Rakamlar );
if (
OrderSend ( Symbol (), OP_BUY , Lot , NormalizeDouble ( Ask , Digits ) , slippage , 0 , TP , NULL , Magic )==- 1 ) Print( GetLastError ());

if (
positionTPask1 > lastTPask1 ){
if (
kar al != 0 ) TPm = NormalizeDouble ( Ask + kar al * Puan , Rakamlar );
if (
OrderSend ( Symbol (), OP_BUY , Lot , NormalizeDouble ( Ask , Digits ), slippage , 0 , TPm , NULL , Magic )==- 1 ) Print( GetLastError ());
}}
Ve aynı fiyattan aynı anda 2 sipariş açıyorum...
Doğru yaptı? bak lütfen...
 

sviter-pro :
Здраствуйте еще раз! Помогите с этой банальностью для вас, ато я разобраться не могу....

Хочу сделать следующее! 

Когда открывается первая сделка по цене к примеру 1.23455, то хочу что бы вторая сделка открывалась когда цена пойдет на 1.23415

 double positionTPask = NormalizeDouble ( Ask * Point , Digits );
double lastTPask1 = NormalizeDouble ( Ask - 40 * Point , Digits );

if (RSI0 < RSIDownLevel && RSIDownLevel <= RSI1){
      TP  = NormalizeDouble ( Ask + takeprofit * Point , Digits ); 
       if ( OrderSend ( Symbol (), OP_BUY , Lot, NormalizeDouble ( Ask , Digits ),slippage, 0 ,TP, NULL ,Magic)==- 1 ) Print ( GetLastError ());
      
   if (positionTPask1 > lastTPask1){
       if (takeprofit!= 0 ) TPm  = NormalizeDouble ( Ask + takeprofit * Point , Digits ); 
       if ( OrderSend ( Symbol (), OP_BUY , Lot, NormalizeDouble ( Ask , Digits ), slippage, 0 , TPm, NULL , Magic)==- 1 ) Print ( GetLastError ());
      }}  
Ve aynı fiyattan aynı anda 2 sipariş açıyorum...

Doğru yaptı? bak lütfen...

İlk satırda bir tuhaflık gördüm. Daha fazla bakmadım.

Bu neden?

 double positionTPask = NormalizeDouble ( Ask * Point , Digits );

Hesap makinesinde Noktaya Göre Sor'u çarpın

Ve lütfen kodu doğru yapıştırın - yeni yazı düzenleyici menüsünde bunun için bir SRC düğmesi var.

 
sviter-pro :
Tekrar merhaba! Bu bayağılığa yardım et sana, çözemedim....

Aşağıdakileri yapmak istiyorum!

İlk anlaşma örneğin 1.23455'lik bir fiyatla açıldığında, fiyat 1.23415'e gittiğinde ikinci anlaşmanın açılmasını istiyorum.

PHP kodu:
double positionTPask = NormalizeDouble ( Sor * Nokta , Rakamlar );
double lastTPask1 = NormalizeDouble ( Sor - 40 * Nokta , Rakamlar );

if (
RSI0 < RSIDownLevel && RSIDownLevel <= RSI1 ){
TP = NormalizeDouble ( İste + kar al * Puan , Rakamlar );
if (
OrderSend ( Symbol (), OP_BUY , Lot , NormalizeDouble ( Ask , Digits ) , slippage , 0 , TP , NULL , Magic )==- 1 ) Print( GetLastError ());

if (
positionTPask1 > lastTPask1 ){
if (
kar al != 0 ) TPm = NormalizeDouble ( Ask + kar al * Puan , Rakamlar );
if (
OrderSend ( Symbol (), OP_BUY , Lot , NormalizeDouble ( Ask , Digits ), slippage , 0 , TPm , NULL , Magic )==- 1 ) Print( GetLastError ());
}}
Ve aynı fiyattan aynı anda 2 sipariş açıyorum...
Doğru yaptı? bak lütfen...
Ask-40*Puan'dan değil, 1 poz-40*Puan açılış fiyatından dans etmeniz gerekir.
 

Göstergelerle çok fazla çalışmadım, bu yüzden bu, belki de basit bir soru ortaya çıktı, " Veri Penceresinde " grafik arabelleğinin görüntülenmesi nasıl devre dışı bırakılır? 3 ve 4 arabelleğini kaldırmak istiyorum, işte kod:

 #property strict
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Black
#property indicator_color2 Yellow
#property indicator_color3 Black
#property indicator_color4 Black

//---- input parameters
input int RSIPeriod= 14 ;
input int Levl= 50 ;
input ENUM_TIMEFRAMES TF= PERIOD_CURRENT ;
//---- buffers
double RSIBuffer[];
double MABuffer[];
double PosBuffer[];
double NegBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers ( 4 );
   SetIndexBuffer ( 0 ,RSIBuffer);
   SetIndexBuffer ( 1 ,MABuffer);
   SetIndexBuffer ( 2 ,PosBuffer);
   SetIndexBuffer ( 3 ,NegBuffer);
   
//---- indicator line
   SetIndexStyle ( 0 , DRAW_NONE );
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexStyle ( 2 , DRAW_NONE );
   SetIndexStyle ( 3 , DRAW_NONE );
//----
//---- name for DataWindow and indicator subwindow label
   short_name= "RSI(" + IntegerToString (RSIPeriod, 0 , ' ' )+ ")" ;
   IndicatorShortName (short_name);
   SetIndexLabel ( 0 ,short_name);
   SetIndexLabel ( 1 , "Levl" + "_" + IntegerToString (Levl, 0 , ' ' )+ " Price" );
   SetIndexLabel ( 2 , "U" );
   SetIndexLabel ( 3 , "D" );
   

   return ( 0 );
  }

Bu değiştirilmiş bir RSI'dir - hesaplama geçmiş verilere dayandığından ve arabellek boyutunu her seferinde değiştirmek (grafik değilse) ve oraya yeni veriler eklemek istemediğim için arabelleklere ihtiyaç vardır, bu nedenle grafik arabellekler amaçlarım için uygun.

 
Alekseu Fedotov :
Ask-40*Puan'dan değil, 1 poz-40*Puan açılış fiyatından dans etmeniz gerekir.

O halde açılış fiyatını oku ve dans et....

 
Aleksey Vyazmikin :

Göstergelerle çok fazla çalışmadım, bu yüzden bu, belki de basit bir soru ortaya çıktı, " Veri Penceresinde " grafik arabelleğinin görüntülenmesi nasıl devre dışı bırakılır? 3 ve 4 arabelleğini kaldırmak istiyorum, işte kod:

Bu değiştirilmiş bir RSI'dir - hesaplama geçmiş verilere dayandığından ve arabellek boyutunu her seferinde değiştirmek (grafik değilse) ve oraya yeni veriler eklemek istemediğim için arabelleklere ihtiyaç vardır, bu nedenle grafik arabellekler amaçlarım için uygun.


Seni ne kadar iyi anladım bilmiyorum.

Bunu deneyin: #property Indicator_buffers 2

 #property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Black
#property indicator_color2 Yellow
 
Alexander Voronkov :

Seni ne kadar iyi anladım bilmiyorum.

Bunu deneyin: #property Indicator_buffers 2


Görünüşe göre haklısın! Ve samimi sadeliğimde, hesaplamalar için bir grafik arabelleği kullanılıyorsa bunun bildirilmesi gerektiğini düşündüm.

Teşekkür ederim!
 
Aleksey Vyazmikin : " Veri Penceresi "nde grafik arabelleğinin görüntülenmesi nasıl devre dışı bırakılır? 3 ve 4 arabelleğini kaldırmak istiyorum, işte kod:

veri penceresine çıkışı devre dışı bırakmak için bunu yapın

 SetIndexLabel ( 2 , NULL );   // Запрет в окно Данные буфера 3
SetIndexLabel ( 3 , NULL );   // Запрет в окно Данные буфера 4
 
STARIJ :

veri penceresine çıkışı devre dışı bırakmak için bunu yapın


Teşekkür ederim. Böyle bir hareket, iCustom aracılığıyla arabellek veri penceresinde yasaklanmış çıktıyı görmenize izin verir mi?

 
Aleksey Vyazmikin : Teşekkürler. Böyle bir hareket, iCustom aracılığıyla arabellek veri penceresinde yasaklanmış çıktıyı görmenize izin verir mi?

iCustom, yalnızca veri penceresinde ne olduğunu görmenizi sağlar. Fonksiyonun sondan bir önceki parametresi, sadece veri penceresinde görünen arabellek sayısıdır.

Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
Просмотр и настройка графиков - Графики котировок, технический и фундаментальный анализ - Справка по MetaTrader 5
  • www.metatrader5.com
Графики в торговой платформе отображают изменение котировок финансовых инструментов во времени. Они необходимы для проведения технического анализа...