Çoklu para birimi danışmanı hakkında soru - sayfa 13 1...67891011121314 Yeni yorum Рита 2009.07.10 09:58 #121 Günaydın! Lütfen. söylemek. Çok para birimli bir Uzman Danışmanda her bir çift için pozisyonlar bu şekilde açılır.- //ЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ //-------------------------Изначальная позиция ---------- if ( Trade & & pb = = 0 & & ( iBarShift ( "EURCHF_FX" , timeFr , OpenTime1 ) ! = 0 ) //если нет открытых дл. позиций и не было на этом баре & & Bid_ < Lbid + Delta * Point_ ) { if ( iMA ( "EURCHF_FX" , 0 , period_MA , 0 , MODE_SMMA , PRICE_MEDIAN , 0 ) < iClose ( "EURCHF_FX" , period_TF , 0 ) // || !Filter_DT) { //если фильтр разрешает SL = 0 ; TP = 0 ; if ( StopLoss > 0 ) SL = Ask_ - Point_ * StopLoss ; if ( TakeProfit > 0 ) TP = Ask_ + Point_ * TakeProfit ; ticket = WHCOrderSend ( "EURCHF_FX" , OP_BUY , Lots , Ask_ , 3 , SL , TP , "_001" , Magic , 0 , Blue ) ; if ( ticket < 0 ) { Print ( "Ошибка открытия ордера BUY EURCHF_FX #" , GetLastError ( ) ) ; Sleep ( 10000 ) ; return ( 0 ) ; } initorders ( ) ; OpenTime1 = iTime ( "EURCHF_FX" , timeFr , 0 ) ; } } //жжжжжжжжж Дополнительная позиции жжжжжжжжжжжжжжжжж if ( NumberOfPositions ( "EURCHF_FX" , OP_BUY , Magic ) = = 1 & & NumberOfPositions ( "EURCHF_FX" , OP_BUY , Magic_2 ) < 1 ) { //если открыта начальная позици if ( GetProfitOpenPosInPoint ( "EURCHF_FX" , OP_BUY , Magic ) < = LEVEL_1 & & iBarShift ( "EURCHF_FX" , timeFr , OpenTime1 ) ! = 0 ) { //и если убыток начальн. позиции больше заданного значения SL = 0 ; TP = 0 ; if ( StopLoss > 0 ) SL = Ask_ - Point_ * StopLoss ; if ( TakeProfit > 0 ) TP = Ask_ + Point_ * TakeProfit ; ticket = WHCOrderSend ( "EURCHF_FX" , OP_BUY , Lots + dL2 , Ask_ , 50 , SL , TP , "002" , Magic_2 , 0 , Blue ) ; if ( ticket < 0 ) { Print ( "Ошибка открытия ордера BUY EURCHF_FX #" , GetLastError ( ) ) ; Sleep ( 10000 ) ; return ( 0 ) ; } OpenTime1 = iTime ( "EURCHF_FX" , timeFr , 0 ) ; } } //ЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮЮ Söylemek. Bu blok yerine nasıl ayrı bir fonksiyon yazabilirim. Her çift için bu bloğu yeniden yazmamak için ? (Blokta, I. Kim'in işlevleri ve açılış işlevleri, Piyasa İzleme ticaret emirlerinin piyasa yürütme koşullarında kullanılmıştır). KimIV'ten faydalı özellikler [Arşivle!] Forumu kirletmemek için robot oluşturmak Victor Nikolaev 2009.07.11 00:57 #122 Rita писал(а) >> Günaydın! Lütfen. söylemek. Çok para birimli bir Uzman Danışmanda her bir çift için pozisyonlar bu şekilde açılır.- Söylemek. Bu blok yerine nasıl ayrı bir fonksiyon yazabilirim. Her çift için bu bloğu yeniden yazmamak için ? (Blokta, I. Kim'in işlevleri ve açılış işlevleri, Piyasa İzleme ticaret emirlerinin piyasa yürütme koşullarında kullanılmıştır). void FUN(string _Symbol){ // Kodunuz, ancak belirli bir araç yerine _Symbol kullanılıyor } Рита 2009.07.11 08:03 #123 Teşekkür ederim. Peki ya her çift için teklifler, sorular, Delta, Lot ve bool TRADE (bu giriş iznidir)? Bu böyle mi doğru olurdu? - void FUN ( string _Symbol , bool TRADE , double _BID , double _AZK , double _Delta , double _LOTS ) { Ayrıca. Kulağımın köşesinden, kullanıcı tanımlı bir işlevi diğerinin içinde kullanmanın (çağırmanın) yanlış olduğunu duydum. Ve piyasa emirlerinin piyasa yürütme koşullarında pozisyon açmak için f-i bloğunda kullanıyorum Piyasa İzleme int WHCOrderSend ( string symbol , int cmd , double volume , double price , int slippage , double stoploss , double takeprofit , string comment , nt magic , datetime expiration , color arrow_color ) { int ticket = OrderSend ( symbol , cmd , volume , price , slippage , 0 , 0 , comment , magic , expiration , arrow_color ) ; int check = - 1 ; if ( ticket > 0 & & ( stoploss ! = 0 | | takeprofit ! = 0 ) ) { if ( ! OrderModify ( ticket , price , stoploss , takeprofit , expiration , arrow_color ) ) { check = GetLastError ( ) ; if ( check ! = ERR_NO_ERROR ) { Print ( "OrderModify error: " , ErrorDescription ( check ) ) ; } } } else { check = GetLastError ( ) ; if ( check ! = ERR_NO_ERROR ) { Print ( "OrderSend error: " , ErrorDescription ( check ) ) ; } } return ( ticket ) ; } İşyerinde sorunlar ve başarısızlıklar olacak mı? Victor Nikolaev 2009.07.13 03:01 #124 Rita писал(а) >> Teşekkür ederim. Peki ya her çift için teklifler, sorular, Delta, Lot ve bool TRADE (bu giriş iznidir)? Bu böyle mi doğru olurdu? - Ayrıca. Kulağımın köşesinden, kullanıcı tanımlı bir işlevi diğerinin içinde kullanmanın (çağırmanın) yanlış olduğunu duydum. Ve piyasa emirlerinin piyasa yürütme koşullarında pozisyon açmak için f-i bloğunda kullanıyorum Piyasa İzleme İşyerinde sorunlar ve başarısızlıklar olacak mı? double _Bid=MarketInfo(_Symbol, MODE_BID); double _Ask=MarketInfo(_Symbol, MODE_ASK); ................................................ . ................ İşlev çağrısı herhangi bir yerde olabilir. hiçbir sorun olmayacak Рита 2009.07.13 08:32 #125 TAMAM. Sayesinde. Рита 2009.07.20 13:01 #126 Tünaydın! Çok para biriminde takip kullanıyorum. Işte bir tane: void TrailPositions ( ) // функция трейлинг стоп { int Orders = OrdersTotal ( ) ; for ( int i = 0 ; i < Orders ; i + + ) { if ( ! ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) ) continue ; if ( OrderSymbol ( ) ! = Symbol ( ) ) continue ; if ( OrderMagicNumber ( ) = = Magic ) { //-------------------------------------- if ( OrderType ( ) = = OP_BUY ) { if ( Bid - OrderOpenPrice ( ) > MinProfit * Point ) { if ( OrderStopLoss ( ) < Bid - ( TrailingStop + TrailingStep - 1 ) * Point ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - TrailingStop * Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //----------------------------------------- if ( OrderType ( ) = = OP_SELL ) { if ( OrderOpenPrice ( ) - Ask > MinProfit * Point ) { if ( OrderStopLoss ( ) > Ask + ( TrailingStop + TrailingStep - 1 ) * Point | | OrderStopLoss ( ) = = 0 ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Ask + TrailingStop * Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //--------------------------------------------- } } } İzi tüm çoklu para birimi çiftleri için kullanmak için bu şekilde yeniden oluşturdum. (Teklif sorma noktaları MarketInfo (Symbol_1,MODE_ASK) aracılığıyla çağrılır; void TrailPositions ( string _Symbol , double _BID , double _AZK , double _Point , int MAGIC , int MinProfit , int TrailingStop , int TrailingStep ) { int Orders = OrdersTotal ( ) ; for ( int i = 0 ; i < Orders ; i + + ) { if ( ! ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) ) continue ; if ( OrderSymbol ( ) ! = _Symbol ) continue ; if ( OrderMagicNumber ( ) = = MAGIC ) { //---------------------------------------------------- if ( OrderType ( ) = = OP_BUY ) { if ( _BID - OrderOpenPrice ( ) > MinProfit * _Point ) { if ( OrderStopLoss ( ) < _BID - ( TrailingStop + TrailingStep - 1 ) * _Point ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , _BID - TrailingStop * _Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //------------------------------------------------------- if ( OrderType ( ) = = OP_SELL ) { if ( OrderOpenPrice ( ) - _AZK > MinProfit * _Point ) { if ( OrderStopLoss ( ) > _AZK + ( TrailingStop + TrailingStep - 1 ) * _Point | | OrderStopLoss ( ) = = 0 ) { OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , _AZK + TrailingStop * _Point , OrderTakeProfit ( ) , 0 , Blue ) ; } } } //-------------------------------------------------------------- } } } EA açılış fiyatları üzerinde çalışıyor. Trol şöyle adlandırılır: if ( UseTrailing_1 ) { //выключатель трейлинг стопа 1 пары if ( iTime ( Symbol_1 , TimeFR_1 , 0 ) = = prevtime ) return ( 0 ) ; //ждём появления нового бара prevtime = iTime ( Symbol_1 , TimeFR_1 , 0 ) ; //если появился новый бар , включаемся TrailPositions ( Symbol_1 , Bid1 , Ask1 , Point1 , Magic_1 , MinProfit_1 , TrailingStop_1 , TrailingStep_1 ) ; } //------------------------------------------------------------------------------- if ( UseTrailing_2 ) { //выключатель трейлинг стопа 2 пары if ( iTime ( Symbol_2 , TimeFR_2 , 0 ) = = prevtime ) return ( 0 ) ; //ждём появления нового бара prevtime = iTime ( Symbol_2 , TimeFR_2 , 0 ) ; //если появился новый бар , включаемся TrailPositions ( Symbol_2 , Bid2 , Ask2 , Point2 , Magic_2 , MinProfit_2 , TrailingStop_2 , TrailingStep_2 ) ; } Yine de. Bu dahil edilen trol çalışmıyor. Bir karakterin trolünü tamamen kaldırırsam diğer çiftin trolü çalışmaya başlar. Ve kodda her iki takip çağrısı da mevcutsa, hiçbiri çalışmaz. Lütfen. söylemek. Nerede hata olabilir? MQL uzmanları için soru [Arşiv]Köylülerden para kazanmayı öğrenin![Arşiv] KimIV'ten faydalı özellikler Victor Nikolaev 2009.07.20 13:25 #127 Her enstrüman ve zaman dilimi için kendi geçmiş zamanınızı kullanmanız gerekir. Рита 2009.07.20 14:35 #128 Teşekkürler Vinin ! ve her çift için kendi trolümü yazmaya çoktan hazırdım .... [Silindi] 2012.05.01 18:08 #129 Çoklu para birimi ile yardım. Danışman tarafından yazılmıştır . İki EURUSD <-> GBPUSD çifti için aynı anda emir açar/kapatır. EURUSD'ye tutunuyorum. Her iki çiftin tırnaklarını okur (iOpen). Aşağıdaki komutlar yürütülür Ask_EUR = MarketInfo("EURUSD", MODE_ASK); Bid_EUR = MarketInfo("EURUSD", MODE_BID); Ancak bu komutlar yürütülmez. Ask_GBP = MarketInfo("GBPUSD", MODE_ASK); Bid_GBP = MarketInfo("GBPUSD", MODE_BID); Değerler ask = teklif = 0 Söyle bana, sorun ne? Nasıl kodlanır? Forumu kirletmemek için herhangi Hatalar, hatalar, sorular Leonid Borsky 2012.05.01 18:25 #130 MARKET WATCH penceresinde ikinci bir çift var mı? 1...67891011121314 Yeni yorum
Günaydın!
Lütfen. söylemek. Çok para birimli bir Uzman Danışmanda her bir çift için pozisyonlar bu şekilde açılır.-
Söylemek. Bu blok yerine nasıl ayrı bir fonksiyon yazabilirim.
Her çift için bu bloğu yeniden yazmamak için ?
(Blokta, I. Kim'in işlevleri ve açılış işlevleri, Piyasa İzleme ticaret emirlerinin piyasa yürütme koşullarında kullanılmıştır).
Günaydın!
Lütfen. söylemek. Çok para birimli bir Uzman Danışmanda her bir çift için pozisyonlar bu şekilde açılır.-
Söylemek. Bu blok yerine nasıl ayrı bir fonksiyon yazabilirim.
Her çift için bu bloğu yeniden yazmamak için ?
(Blokta, I. Kim'in işlevleri ve açılış işlevleri, Piyasa İzleme ticaret emirlerinin piyasa yürütme koşullarında kullanılmıştır).
void FUN(string _Symbol){
// Kodunuz, ancak belirli bir araç yerine _Symbol kullanılıyor
}
Teşekkür ederim. Peki ya her çift için teklifler, sorular, Delta, Lot ve bool TRADE (bu giriş iznidir)?
Bu böyle mi doğru olurdu? -
Ayrıca. Kulağımın köşesinden, kullanıcı tanımlı bir işlevi diğerinin içinde kullanmanın (çağırmanın) yanlış olduğunu duydum.
Ve piyasa emirlerinin piyasa yürütme koşullarında pozisyon açmak için f-i bloğunda kullanıyorum Piyasa İzleme
İşyerinde sorunlar ve başarısızlıklar olacak mı?Teşekkür ederim. Peki ya her çift için teklifler, sorular, Delta, Lot ve bool TRADE (bu giriş iznidir)?
Bu böyle mi doğru olurdu? -
Ayrıca. Kulağımın köşesinden, kullanıcı tanımlı bir işlevi diğerinin içinde kullanmanın (çağırmanın) yanlış olduğunu duydum.
Ve piyasa emirlerinin piyasa yürütme koşullarında pozisyon açmak için f-i bloğunda kullanıyorum Piyasa İzleme
İşyerinde sorunlar ve başarısızlıklar olacak mı?double _Bid=MarketInfo(_Symbol, MODE_BID);
double _Ask=MarketInfo(_Symbol, MODE_ASK);
................................................ . ................
İşlev çağrısı herhangi bir yerde olabilir. hiçbir sorun olmayacak
Tünaydın!
Çok para biriminde takip kullanıyorum. Işte bir tane:
İzi tüm çoklu para birimi çiftleri için kullanmak için bu şekilde yeniden oluşturdum.
(Teklif sorma noktaları MarketInfo (Symbol_1,MODE_ASK) aracılığıyla çağrılır;
EA açılış fiyatları üzerinde çalışıyor.
Trol şöyle adlandırılır:
Yine de. Bu dahil edilen trol çalışmıyor.
Bir karakterin trolünü tamamen kaldırırsam diğer çiftin trolü çalışmaya başlar.
Ve kodda her iki takip çağrısı da mevcutsa, hiçbiri çalışmaz.
Lütfen. söylemek. Nerede hata olabilir?
Her enstrüman ve zaman dilimi için kendi geçmiş zamanınızı kullanmanız gerekir.
Teşekkürler Vinin !
ve her çift için kendi trolümü yazmaya çoktan hazırdım ....
Çoklu para birimi ile yardım.
Danışman tarafından yazılmıştır . İki EURUSD <-> GBPUSD çifti için aynı anda emir açar/kapatır. EURUSD'ye tutunuyorum. Her iki çiftin tırnaklarını okur (iOpen). Aşağıdaki komutlar yürütülür
Ask_EUR = MarketInfo("EURUSD", MODE_ASK);
Bid_EUR = MarketInfo("EURUSD", MODE_BID);
Ancak bu komutlar yürütülmez.
Ask_GBP = MarketInfo("GBPUSD", MODE_ASK);
Bid_GBP = MarketInfo("GBPUSD", MODE_BID);
Değerler ask = teklif = 0
Söyle bana, sorun ne?