そして、それを「漫画」にしよう(多通貨化) - ページ 12

 
Swan >> :

このように

>> ありがとうございました。

 

今メジャーはどうなんだろう...専門家としては...)

ポンド, ユーロ, チフ, ニュージーランド, カナダ, オージー...は準備中の状態です)

どうにかして繋げようとする...一般的な分析をする...。選んだペアの方向が一致していれば、ベット...

 
ALex2008 >> :

ありがとうございます...

そういうものなんです。


      CheckBU=false;
      if( Type==0 && Stop> OpenPrise) CheckBU=true;
      if( Type==1 && Stop< OpenPrise) CheckBU=true;  

なくても動くかもしれない、その方が信頼できる :)


if (( Type<=1)&&( Stop==0|| Stop!= StopLoss))       SetStop();

StopLossはSetStop()関数で計算されます。と同じになります。

if ( Type<=1)       SetStop();
 
Swan >> :

StopLossはSetStop()関数で計算されます。と同じになります。

いや、それは違うか...。ちゃんとしたチェックではありませんが、左ストップをチェックするためのもの...のはずです。

またはこれ

StopLoss=MathMax(b0,b1);
>> またはこれ

StopLoss=MathMin(s0,s1);

そのため、最初のStopLossは-0に等しくなっています。


if(!WorkOrders()){
      StopLoss=0;

そして、上記のような価値観のひとつである...。このままではストップがかかっても再チェックされない...。

スワン>>:

多分、なくても動くと思います、その方が安全です :)

修正しました)。





 
Swan >> :

if (Type<=1) SetStop();

そして、そこに一度に送ると...4時間ごとにストップのパラメータ(b1,s1,b0,s0)が新しくなって...変化してしまいます...。

 

人間らしく書こうとすると...。を修正するために...

停止チェックに論理 変数modを 追加...。

//+------------------------------------------------------------------+
//|                                                    CandyLite.mq4 |
//|                                                    Ш.Александр.В |
//|                                              shestovav@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Ш.Александр.В"
#property link      "shestovav@gmail.com"

#include <stdlib.mqh>

extern double Profit    = 3000;
extern double Lot       = 0.1;
extern bool BU          = true;
extern double BUenter   = 150;
extern double BUstop    = 10;


int Type, Ticket;
double OpenPrise, EnterBU, StopLossBU, SLmax, Stop, StopLevel, b1, s1, b0, s0, StopLoss, Enter;
bool mod, CheckBU;

int init(){
   Profit*=Point; 
   BUenter*=Point;
   BUstop*=Point;
   return(0);
  }

int deinit() {
   return(0);
  }

int start() {
   StopLevel=Point*MarketInfo(Symbol(),MODE_STOPLEVEL);   // вычисление стоплевел //Point*
   
   if(! WorkOrders()){
      mod=false;
      StopLoss=0;
      StopLossBU=0;
      UpTrend();
      DownTrend();
   }
      
   if( WorkOrders()){
      if (( Type<=1)&&( Stop==0||! mod))                 SetStop();
      if (( BU==true)&&( Type<=1)&&(! CheckBU))          SetBU();
      if (( Type==1)||( Type==5))                       UpTrend();
      if (( Type==0)||( Type==4))                       DownTrend();
      //Comment("SL=", );
   }

   return(0);
  }
//-------Поиск входа для установки ордеров, удаление старых ордеров и установка новых
void UpTrend(){
     if((iOpen(NULL,PERIOD_H4,1) - iClose(NULL,PERIOD_H4,1) <= 0) &&
        (iOpen(NULL,PERIOD_H4,2) - iClose(NULL,PERIOD_H4,2) > 0)){
         Enter=iHigh(NULL,PERIOD_H4,1)+(Ask-Bid)+10*Point;
         SLmax=iLow(NULL,PERIOD_H4,1)-10*Point;
         if(IsTradeAllowed()){
            DellAllOrders();
            if( Enter-Ask> StopLevel-0.5*Point){
               OrderSend(Symbol(), OP_BUYSTOP, Lot, Enter, 0, SLmax, Enter+ Profit, 0, 0,0, Green);}
         else Sleep(1000);
         }
      }
  }
void DownTrend(){
     if((iOpen(NULL,PERIOD_H4,1) - iClose(NULL,PERIOD_H4,1) >= 0) &&
        (iOpen(NULL,PERIOD_H4,2) - iClose(NULL,PERIOD_H4,2) < 0)){
         Enter=iLow(NULL,PERIOD_H4,1)-10*Point;
         SLmax=iHigh(NULL,PERIOD_H4,1)+(Ask-Bid)+10*Point;
         if(IsTradeAllowed()){
            DellAllOrders();
            if(Bid- Enter> StopLevel-0.5*Point){
               OrderSend(Symbol(), OP_SELLSTOP, Lot, Enter, 0, SLmax, Enter- Profit, 0, 0,0, Green);}
         else Sleep(1000);
         }
      }
  }

//-------Вычисление стопа и установка
void SetStop(){
      RefreshRates();
      b0=iLow(NULL,PERIOD_H4,0)-10*Point;
      s0=iHigh(NULL,PERIOD_H4,0)+(Ask-Bid)+10*Point;
      b1=iLow(NULL,PERIOD_H4,1)-10*Point;
      s1=iHigh(NULL,PERIOD_H4,1)+(Ask-Bid)+10*Point;
            
         if( Type==0){
            StopLoss=MathMax( b0, b1);
            if( Stop!= StopLoss) mod=OrderModify( Ticket, OpenPrise, StopLoss,OrderTakeProfit(),0,Red);
            else mod=true;
         }
         if( Type==1){
            StopLoss=MathMin( s0, s1);
            if( Stop!= StopLoss) mod=OrderModify( Ticket, OpenPrise, StopLoss,OrderTakeProfit(),0,Red);
            else mod=true;
         }
   }

//-------Вычисление бу и установка
void SetBU(){
      if( Type==0){
         EnterBU= OpenPrise+ BUenter;
         StopLossBU= OpenPrise+ BUstop;
         RefreshRates();
         if(Bid>= EnterBU){
            StopLoss= StopLossBU;
            OrderModify( Ticket, OpenPrise, StopLossBU,OrderTakeProfit(),0,Red);}
      }
      if( Type==1){
         EnterBU= OpenPrise- BUenter;
         StopLossBU= OpenPrise- BUstop;
         RefreshRates();
         if(Ask<= EnterBU){
            StopLoss= StopLossBU;
            OrderModify( Ticket, OpenPrise, StopLossBU,OrderTakeProfit(),0,Red);}
      }
}
   
//-------Удаление всех ордеров, открытых и отложенных
void DellAllOrders(){
      if( WorkOrders()){
      if( Type<=1)OrderClose( Ticket,OrderLots(),OrderClosePrice(),10);
      else OrderDelete( Ticket);}
  }
  
//-------Поиск ордеров
bool WorkOrders(){
      for (int i=OrdersTotal()-1; i>=0; i--){
      if (!OrderSelect( i, SELECT_BY_POS))  continue;
      if (OrderSymbol()!=Symbol())        continue;
      OpenPrise=OrderOpenPrice();
      Type     =OrderType();
      Ticket   =OrderTicket();
      Stop     =OrderStopLoss();
      CheckBU=false;
      if( Type==0 && Stop> OpenPrise) CheckBU=true;
      if( Type==1 && Stop< OpenPrise) CheckBU=true;
      return(true);}
  return(false);
  }
  
 
私も自分の意見を言うようにしますが、決して押し付けるわけではありません !
何も押し付けない!! トレーリングストップやノーロスなどの知恵は全く必要ない、全ては初心者のためにあるのだ。
全ては初心者のため、証券会社の利益、Expert Advisor、システムそのものはできるだけシンプルであるべきです。
インジケーターや水準器などは、全く意味がない。
最も重要なことは、売りと買いの厳格なルールを持つこと、システムはリバーシブルであること、すなわち、常にマーケットに存在することです
もう一度言いますが、これは私の見解です !
 
ALex2008 >> :

人間らしく書こうとすると...。を修正するために...

停止チェックに論理変数modを追加...。


チェック、MOD追加、エラーチェック

ファイル:
candylite.mq4  5 kb
 
AAE >> :
私も自分の意見を言うようにしますが、決して押し付けるわけではありません !
何も押し付けない!! トレーリングストップやノーロスなどの知恵は全く必要ない、全ては初心者のためにあるのだ。
全ては初心者のため、証券会社の利益、Expert Advisor、システムそのものはできるだけシンプルであるべきです。
インジケーターや水準器などは、全く意味がない。
最も重要なことは、売りと買いの厳格なルールを持つこと、システムはリバーシブルであること、すなわち、常にマーケットに存在することです
もう一度言いますが、これは私の見解です !

御意見ごもっとも)