[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 924

 
要は、思考の方向性を定めることなのですが...。:)

男が迷子にならないように訂正してくれ...。:)

簡単にですが、訂正していただけますか?
 
T.H.C.:
ちょっと、訂正していただけませんか?

一例を挙げました。

5が2より大きければ、5が2より大きいということです。

そして、これらの値の差を比較すると、5-2が0より大きい場合は、5が2より大きいということになります

これでいいですか?要は、同じ小学1年生の数学から派生したものでしかないのですが......。

 
extern double Lot=0.01; // Жестко заданное колич. лотов
datetime time;
//--------------------------------------------------------------- 2 --
int start()
{
int Total;


bool
Ans =false, // Ответ сервера после закрытия
Cls_B=false, // Критерий для закрытия Buy
Cls_S=false, // Критерий для закрытия Sell
Opn_B=false, // Критерий для открытия Buy
Opn_S=false; // Критерий для открытия Sell

//--------------------------------------------------------------- 3 --
// Учёт ордеров


for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()>1)Total++;

if(Total!=0 || time==Time[1])return;

static int KolBars;



if (Close[0]-Open[0] > Point && Close[1]-Open[1] > Point && Bars == KolBars)


{

KolBars=Bars ; // запоминаем кол-во бар при которых совершались действия

}




// Торговые критерии

// Критерий откр. Buy


Opn_B=true;

//--------------------------------------------------------------- 7 --


if (Opn_B)
{OrderSend(Symbol(),OP_BUY,Lot,Ask,0,0,0);time=Time[1];}

}




誰か助けてください!4回目のお願いです。3日間かけて答えを探しましたが、本にはやり方が書いてないし、そんな状態のEAも見つかりませんでした。初級アドバイザーは、新しいローソク足(前の2本のローソク足が緑色の場合)の出現時に買いポジションを開き、ポジションが開かれたローソク足の終値、または次のローソク足の終値でポジションをクローズします。

上にあるものは、新しいローソク足が現れるたびにポジションを開き、開始基準に反応せず、ポジションを閉じる 方法がわかりません。チュートリアルでもフォーラムでも見つけられませんでした。

 
artmedia70:

整理して...:)

また、StopLevの存在も忘れてはいけません - int StLev=MarketInfo(Symbol(), MODE_STOPLEVEL);

ストップ&テイクアウトを設定する際の最短距離がこの値より短くならないように確認すること


実はちゃんと構成したのですが-- "StLev=MarketInfo(Symbol(),MODE_STOPLEVEL);" どこに入れたらいいのか、 今更ですが...。

仕事中は常に(ここではmql4プログラムをインストールできないので、すべて頭の中でやるしかない)。

extern double StopLoss=100.0;
extern double TakeProfit=100.0;
extern double Lots=0.01;
extern int total;
extern int SetOrderDistance=50;

int start() {

int pt,dg,StLev;
double Price_1,Price_2,min,max,pa,pb;
RefreshRates().

pt=MarketInfo(Symbol(),MODE_POINT);
dg=MarketInfo(Symbol(),MODE_DIGITS);
pa=MarketInfo(Symbol(),MODE_ASK);
pb=MarketInfo(Symbol(),MODE_BID);
Price_1=pb;
Price_2=pa;
min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();
double slB=NormalizeDouble(pa-StopLoss*pt,dg);
double tpB=NormalizeDouble(pa+TakeProfit*pt,dg);
double slS=NormalizeDouble(pb+StopLoss*pt,dg);
double tpS=NormalizeDouble(pb-TakeProfit*pt,dg)である。

if(total<1) {

if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,pa,5,slB,tpB, "My order#,16384,0,Green");

if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,pb,5,slS,tpS, "My order#,16384,0,Green);
} }.
}return(0);

 
T.H.C.:

スケッチしただけだ 混乱するかもしれない

#define Mag 464564564
extern double Lot=0.01;

int start()
{
int Total;

for(int i=OrdersTotal()-1;i>=0;i--)
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2&&OrderMagicNumber()==Mag)
       {Total++;
       if(Volume[0]<4)close();
       }

if(Total!=0)return;
if(Close[1]>Open[1]&&Close[2]>Open[2]&&Volume[0]>4)bue();
if(Close[1]<Open[1]&&Close[2]<Open[2]&&Volume[0]>4)sell();

}
void bue()
{
OrderSend(Symbol(),0,Lot,NormalizeDouble(Ask,Digits),5,0,0,0,Mag);
}
//----
void sell()
{
OrderSend(Symbol(),1,Lot,NormalizeDouble(Bid,Digits),5,0,0,0,Mag);
}
void close()
{
double pr;if(OrderType()==0)pr=Bid;if(OrderType()==1)pr=Ask;
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(pr,Digits),5);
}
 
Techno:

スケッチしただけなので、少し雑かもしれません。

ありがとうございました、とても助かりました。

プログラミングはどのように学んだのですか?どこから始めたのですか?

 
T.H.C.:

ありがとうございました、とても助かりました。

プログラミングはどのように学んだのですか?どこから始めたのですか?

C++を始め、教科書で勉強しました
 
C++はmqlと大差ない?
 
T.H.C.:
C++はmqlと大差ない?
Mqlは、一部の機能(トレードの方向性)を除いて、c++の高度に縮小されたコピーに過ぎません。
 
Techno:
Mqlは、一部の機能(トレーディング指向)を除いて、c++の高度なコピーに過ぎません。
あ、アドバイスとお時間をいただきありがとうございました